Umbraco.Community.FrontDoorCache 1.0.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package Umbraco.Community.FrontDoorCache --version 1.0.1                
NuGet\Install-Package Umbraco.Community.FrontDoorCache -Version 1.0.1                
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="Umbraco.Community.FrontDoorCache" Version="1.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Umbraco.Community.FrontDoorCache --version 1.0.1                
#r "nuget: Umbraco.Community.FrontDoorCache, 1.0.1"                
#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.
// Install Umbraco.Community.FrontDoorCache as a Cake Addin
#addin nuget:?package=Umbraco.Community.FrontDoorCache&version=1.0.1

// Install Umbraco.Community.FrontDoorCache as a Cake Tool
#tool nuget:?package=Umbraco.Community.FrontDoorCache&version=1.0.1                

Umbraco.Community.FrontDoorCache

A package for sites which are sitting behind Azure Front Door using it as a CDN and a cache for both media and content. Typically they'll be a delay between publishing content and the cache updating at Front Door, this will mean your sites will be serving older versions of the content for a time following an update. This package will trigger a purge of the modified content forcing Front Door to update its cache and serve the latest version of the content. This will allow you to specify longer cache times in Front Door and reduce the load on your site.

First you, or an Microsoft Entra ID administration will need to create an App Registration in the Azure Portal which will be used to give the site permissions to the Front Door API. Follow these instructions to setup the new App Registration

To install:

dotnet add package Umbraco.Community.FrontDoorCache

To configure add the following section to the root of your appsettings.json file and customise as appropriate

"FrontDoor": {
	"Cache": {
		"Enabled": true,
		"Mode": "SelfAndAncestors",
		"SubscriptionId": "",
		"ResourceGroupName": "",
		"FrontDoorName": "",
		"EndpointName": "",
		"TenantId": "",
		"ClientId": "",
		"ClientSecret": "",
		"Domains": [
			"www.sitedomain.com"
		] 
	} 
}, 

You'll need to configure these settings based on the values in Azure:

Setting Description
Enabled Set to true to enable the module, or false to disable
Mode Can be one of: All, Self or SelfAndAncestors (See below)
SubscriptionId The ID of the Azure subscription that the Front Door belongs to
ResourceGroupName The name for the Azure resource group that the Front Door belongs to
FrontDoorName The name of the Front Door to purge
EndpointName The name of the endpoint in Front Door to purge
TenantId The value in Directory (tenant) ID on the app registration Overview
ClientId The value in Application (Client) ID on the app registration Overview
ClientSecret The client secret created for the app registration
Domains The domains configured in Front Door that you want to purge

Modes

Name Description
All Will completely purge the cache when either media or content is published
Self Purges just the media or content that is published
SelfAndAncestors Purges the published media and content. Additionally, for content only, will purge all of its ancestors working up the content tree

License

Copyright © 2024 Gibe Digital Ltd.

All source code is licensed under the MIT License

Acknowledgements

This package takes heavy inspiration from CloudflareMediaCache thanks @jcdcdev

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.2 108 11/11/2024
1.0.1 185 8/8/2024
1.0.0 104 7/9/2024