Release date: May 28, 2026

Version 1.6.0 is a major platform release. Redakt now targets .NET 10 only; support for .NET 6 and .NET 8 has been removed. Host applications must upgrade their runtime and SDK before moving to this version.

This release replaces the end-of-life IdentityServer4 stack with cookie-based BackOffice authentication and lightweight, path-scoped OIDC metadata endpoints. External login providers have been updated (notably Microsoft Entra ID, replacing the previous Azure AD integration).

This release is available on NuGet as of today. Skeleton projects will be updated to reference v1.6.0.

Changes

The following changes have been made in this release:
.NET 10

Redakt packages now target net10.0 only.

As with previous releases, Redakt will continue to align with actively supported .NET versions as they become available.
Identity and authentication

IdentityServer4 has been removed from Redakt.IdentityServer. BackOffice sign-in uses cookie authentication (RedaktBackOffice) with the existing Razor login, logout, and external-login callback pages.

OIDC discovery and JWKS endpoints are provided under the BackOffice root path (for example /redakt/.well-known/openid-configuration). Full OAuth/OIDC authorize and token endpoints are not exposed; BackOffice does not use the former in-memory OAuth client.

External login uses the RedaktExternal temporary cookie scheme (replacing IdentityServer4’s external cookie).

Microsoft Entra ID replaces the previous Azure AD integration:
  • Registration: AddEntraIdAuthentication() (was AddAzureADAuthentication())
  • Authentication scheme: redakt.entraid (was redakt.azuread)
  • Configuration section: Redakt:IdentityServer:EntraId (was AzureAD)
Production hosts should configure signing credentials via Redakt:IdentityServer:SigningCredentials (Development for local use, or Certificate from disk).
Redakt.IdentityStore data models and APIs are unchanged. Public extension method names (AddIdentityServer, UseRedaktIdentityServer) are unchanged.
Content culture resolution

Content property culture lookup is centralized through EffectiveCulture on ContentPropertyDefinition.

Two system-wide settings on CultureSettings support migration scenarios without a database change:
  • InvariantCulture — culture used for non-culture-dependent properties (defaults to CultureInfo.InvariantCulture)
  • CultureMap — optional mapping from one culture to another when loading and saving content (for example after making a property culture-dependent retroactively)
URL building
DefaultUrlBuilder builds published URLs from host root path and content segments in a consistent way. Route token substitution is unchanged.

Optional trailing slashes can be enabled via DefaultUrlBuilder.TrailingSlash.
Data providers

MongoDBMongoDB.Driver has been upgraded to 3.8.1. GridFS is included in the main driver package (MongoDB.Driver.GridFS is no longer referenced separately). Serializer registration has been updated for driver 3.x (GUID representation, polymorphic Redakt types).

Azure Cosmos DB — package updated; GetManyAsync uses ReadManyItemsAsync for efficient multi-document reads.

Other provider dependencies have been updated for .NET 10 compatibility (Azure SDKs, RavenDB client, ImageSharp, SkiaSharp, and others).

On .NET 10, repository LINQ expressions that use Contains on a local collection should use List<T> (not T[]) so document-store providers can translate the query. Use ListExtensions.AsCollection() where needed.
Back Office

The rich-text editor has been upgraded to the RoosterJS v9 API.

The file editor loads and displays images more reliably (including focal point handling in the Back Office UI).
Diagnostics

Content delivery middleware (ConfigurationValidation, file store, page rendering) emits additional debug-level logging to simplify troubleshooting of provisioning, media, and page requests.

Bugfixes

The following bugs have been fixed in this release:
  • Fixed an issue where configuration validation caching could mark the application as validated before Redakt was fully provisioned.
  • Fixed Blazor BackOffice authentication state retrieval blocking on .Result instead of awaiting the authentication task.
  • Fixed MongoDB serialization and initialization issues after upgrading to MongoDB.Driver 3.x (GUID representation, allowed polymorphic types, one-time convention registration).
  • Fixed identity store queries comparing aggregate identifiers incorrectly in LINQ filters (string vs. typed id).
  • Fixed Cosmos DB GetManyAsync not returning the expected documents for multiple keys.
  • Fixed Back Office and interactive server components failing to load /_framework/blazor.web.js when the host references Redakt.All without direct Razor project references.
  • Improved published URL path construction when combining site root paths and content relative paths.