From 9dbc5ede7510775ab9fc9d96b61e486089efd04f Mon Sep 17 00:00:00 2001 From: Sina Darbouy Date: Tue, 16 Jun 2026 15:31:52 +0200 Subject: [PATCH] fix: register MongoDB AWS authentication for Atlas IAM (driver 3.x) (#1324) MongoDB.Driver 3.x moved MONGODB-AWS into MongoDB.Driver.Authentication.AWS and requires explicit registration. Without it, Atlas IAM connection strings fail at startup with "Unable to create an authenticator". Co-authored-by: Cursor --- backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs | 8 ++++++++ .../src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj | 1 + 2 files changed, 9 insertions(+) diff --git a/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs b/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs index 2ae3301c4..586f8f323 100644 --- a/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs +++ b/backend/src/Squidex.Data.MongoDb/MongoClientFactory.cs @@ -8,6 +8,7 @@ using System.Text.Json; using MongoDB.Bson; using MongoDB.Driver; +using MongoDB.Driver.Authentication.AWS; using Squidex.Domain.Apps.Core.Contents; using Squidex.Domain.Apps.Entities; using Squidex.Domain.Apps.Entities.Assets; @@ -23,6 +24,8 @@ namespace Squidex; public static class MongoClientFactory { + private static int awsAuthenticationRegistered; + public static void SetupSerializer(JsonSerializerOptions jsonSerializerOptions, BsonType representation) { // Register the serializers first. @@ -53,6 +56,11 @@ public static class MongoClientFactory public static MongoClient Create(string? connectionString, Action? configure = null) { + if (Interlocked.Exchange(ref awsAuthenticationRegistered, 1) == 0) + { + MongoClientSettings.Extensions.AddAWSAuthentication(); + } + var clientSettings = MongoClientSettings.FromConnectionString(connectionString); // If we really need custom config. diff --git a/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj b/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj index 6e32dfbfe..9504e6a67 100644 --- a/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj +++ b/backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj @@ -21,6 +21,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive +