Rivlo.Licensing
13.0.0-beta3
dotnet add package Rivlo.Licensing --version 13.0.0-beta3
NuGet\Install-Package Rivlo.Licensing -Version 13.0.0-beta3
<PackageReference Include="Rivlo.Licensing" Version="13.0.0-beta3" />
<PackageVersion Include="Rivlo.Licensing" Version="13.0.0-beta3" />
<PackageReference Include="Rivlo.Licensing" />
paket add Rivlo.Licensing --version 13.0.0-beta3
#r "nuget: Rivlo.Licensing, 13.0.0-beta3"
#:package Rivlo.Licensing@13.0.0-beta3
#addin nuget:?package=Rivlo.Licensing&version=13.0.0-beta3&prerelease
#tool nuget:?package=Rivlo.Licensing&version=13.0.0-beta3&prerelease
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 | Versions 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. |
-
net8.0
- Microsoft.Extensions.Hosting (>= 9.0.6)
- Newtonsoft.Json (>= 13.0.3)
- Umbraco.Cms.Core (>= 13.0.0 && < 14.0.0)
- Umbraco.Cms.Web.BackOffice (>= 13.0.0 && < 14.0.0)
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 |