Rivlo.Licensing 13.0.0-beta3

This is a prerelease version of Rivlo.Licensing.
dotnet add package Rivlo.Licensing --version 13.0.0-beta3
                    
NuGet\Install-Package Rivlo.Licensing -Version 13.0.0-beta3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Rivlo.Licensing" Version="13.0.0-beta3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Rivlo.Licensing" Version="13.0.0-beta3" />
                    
Directory.Packages.props
<PackageReference Include="Rivlo.Licensing" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Rivlo.Licensing --version 13.0.0-beta3
                    
#r "nuget: Rivlo.Licensing, 13.0.0-beta3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Rivlo.Licensing@13.0.0-beta3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Rivlo.Licensing&version=13.0.0-beta3&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Rivlo.Licensing&version=13.0.0-beta3&prerelease
                    
Install as a Cake Tool

Rivlo Licensing โ€“ Flexible Licensing Validator for Umbraco Packages

Rivlo Licensing is a lightweight .NET package designed to help you license and protect your Umbraco packages with ease.

It supports:

  • ๐Ÿ”’ Signed offline licence files
  • ๐ŸŒ Multi-domain licences with configurable domain limits
  • โณ Built-in per-package trial fallback
  • ๐Ÿง  Custom validation rules (e.g. block dev domains)
  • ๐Ÿงช Dashboard-ready status API
  • ๐Ÿงฐ Dependency-injectable services for integration

๐Ÿ“ฆ Installation

Add the NuGet package to your Umbraco project:

dotnet add package Rivlo.Licensing

โš™๏ธ Quick Start

In your Startup or Composer class:

builder.AddRivloLicensing(new LicenceOptions()
    {
        PublicKeyPem = "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----",
        ProductName = "YourPackage",
        TrialDays = 0,
        TrialIdKey = "YourPackage",
        RelativeLicensePath = "umbraco/licences/yourpackage.lic",
        CustomRule = lic =>
        {
            var isDev = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == "Development";
            return isDev || !lic.AllowedDomains.Any(d => d.Contains("localhost"));
        }
    });

๐Ÿงช Licence File Format

You must generate your own licence files. A basic licence contains the following in JSON format:

{
  "allowedDomains": ["www.example.com", "dev.example.com"],
  "allowedVersions": ["13", "14", "15"],
  "issued": "2025-07-14T10:00:00Z",
  "expires": "2026-07-14T10:00:00Z",
  "maxDomains": 3,
  "includedProducts": ["YourPackage"]
}

This file is signed and stored as a .lic file at the configured path (options.RelativeLicensePath).

๐Ÿ“Š Surfacing Licence Status

The package includes a built-in backoffice API endpoint, automatically registered when the licence validator is configured. You can call this from any custom dashboard or debug panel to check the current status.

GET /umbraco/backoffice/RivloLicensing/LicenceApi/Get

Returns:

{
  "isValid": true,
  "reason": null,
  "payload": { ... }
}

Use this in your back-office UI to show licence or trial status.

๐Ÿ“Œ Features Summary

Feature Built In Notes
Per-domain licensing โœ… Match current host vs payload
Max domain limit โœ… Via maxDomains
Version check โœ… e.g. Umbraco 13โ€“17
Trial fallback โœ… Automatic if no licence present
Licence Status โœ… Exposed via API
Lifetime Switch โœ… Override requirement for expiry or version
Custom validation โœ… Via options.CustomRule

๐Ÿงฏ Troubleshooting

By default trial info is stored in App_Data/rivlolicensing-trial-<key>.dat

You can change this by using your own custom ITrialInfoStorage implementation.

For debugging, you can inspect .lic files by base64 decoding or using the generator tool.

If IHttpContextAccessor is unavailable (e.g. during application startup), domain validation may be deferred.

๐Ÿ” Security

All validation is local โ€” no phone-home, no tracking.

If you wish to implement usage reporting, you can hook into validation results via your own logic.

๐Ÿ“„ License

This package is distributed under a proprietary licence. You may use it freely in commercial or private projects, but redistribution is not permitted.

For the full End User Licence Agreement (EULA), see: https://www.rivlotools.com/products/rivlo-licensing/eula

๐ŸŒ Learn More

Explore the full RivloTools suite at

๐Ÿ‘‰ www.rivlotools.com

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Rivlo.Licensing:

Package Downloads
Rivlo.FriendlyMedia

Media dashboard and content app working alongside the Umbraco media section to give editors clearer visibility, SEO-friendly URLs, helpful warnings, and a faster experience in day-to-day workflows.

Rivlo.ContentMigrationManager

Import/export tool for migrating content and members between Umbraco sites. Includes a secure API and backoffice dashboard with custom mapping and extensibility.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
13.0.0-beta3 185 8/8/2025
13.0.0-beta2 232 8/6/2025
13.0.0-beta1 98 8/3/2025