From 0e0bdf4f8469bb5f1a3d889ab6675c45a02eb326 Mon Sep 17 00:00:00 2001 From: NachoEscrig Date: Thu, 13 Nov 2025 14:45:17 +0000 Subject: [PATCH] feat: Add custom db schema configuration --- .../Extensions/EventSinkExtExtensions.cs | 4 ++-- .../Rsk.Samples.IdentityServer.AdminUiIntegration.csproj | 6 +++--- Rsk.Samples.IdentityServer.AdminUiIntegration/Startup.cs | 7 +++++-- .../appsettings.json | 2 ++ 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Rsk.Samples.IdentityServer.AdminUiIntegration/Extensions/EventSinkExtExtensions.cs b/Rsk.Samples.IdentityServer.AdminUiIntegration/Extensions/EventSinkExtExtensions.cs index b8d24a6..f8c3c4e 100644 --- a/Rsk.Samples.IdentityServer.AdminUiIntegration/Extensions/EventSinkExtExtensions.cs +++ b/Rsk.Samples.IdentityServer.AdminUiIntegration/Extensions/EventSinkExtExtensions.cs @@ -17,9 +17,9 @@ namespace Rsk.Samples.IdentityServer.AdminUiIntegration.Extensions; public static class EventSinkExtExtensions { - public static IServiceCollection AddAuditProviderFactory(this IServiceCollection services, DbContextOptionsBuilder auditDbBuilder) + public static IServiceCollection AddAuditProviderFactory(this IServiceCollection services, DbContextOptionsBuilder auditDbBuilder, string schemName = null) { - RSK.Audit.AuditProviderFactory auditFactory = new AuditProviderFactory(auditDbBuilder.Options); + RSK.Audit.AuditProviderFactory auditFactory = new AuditProviderFactory(auditDbBuilder.Options, schemName); services.AddSingleton(auditFactory.CreateAuditSource("IdentityServer")); services.AddSingleton(); return services; diff --git a/Rsk.Samples.IdentityServer.AdminUiIntegration/Rsk.Samples.IdentityServer.AdminUiIntegration.csproj b/Rsk.Samples.IdentityServer.AdminUiIntegration/Rsk.Samples.IdentityServer.AdminUiIntegration.csproj index fa79082..fcfe013 100644 --- a/Rsk.Samples.IdentityServer.AdminUiIntegration/Rsk.Samples.IdentityServer.AdminUiIntegration.csproj +++ b/Rsk.Samples.IdentityServer.AdminUiIntegration/Rsk.Samples.IdentityServer.AdminUiIntegration.csproj @@ -34,7 +34,7 @@ - + @@ -43,8 +43,8 @@ - - + + diff --git a/Rsk.Samples.IdentityServer.AdminUiIntegration/Startup.cs b/Rsk.Samples.IdentityServer.AdminUiIntegration/Startup.cs index 93a9c77..f8a4017 100644 --- a/Rsk.Samples.IdentityServer.AdminUiIntegration/Startup.cs +++ b/Rsk.Samples.IdentityServer.AdminUiIntegration/Startup.cs @@ -84,7 +84,8 @@ public void ConfigureServices(IServiceCollection services) } // Add Auditing - services.AddAuditProviderFactory(auditDbBuilder); + var auditSchema = Configuration.GetValue("AuditStoreSchemaName"); + services.AddAuditProviderFactory(auditDbBuilder, auditSchema); // configure test-suitable X-Forwarded headers and CORS policy services.AddSingleton(); @@ -104,9 +105,11 @@ public void ConfigureServices(IServiceCollection services) options.AddDefaultPolicy(builder => builder.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod()); }); + var identitySchema = Configuration.GetValue("IdentityStoreSchemaName"); + // configure ASP.NET Identity services - .AddIdentityExpressAdminUiConfiguration(identityBuilder) // ASP.NET Core Identity Registrations for AdminUI + .AddIdentityExpressAdminUiConfiguration(identityBuilder, identitySchema) // ASP.NET Core Identity Registrations for AdminUI .AddDefaultTokenProviders() .AddIdentityExpressUserClaimsPrincipalFactory(); // Claims Principal Factory for loading AdminUI users as .NET Identities diff --git a/Rsk.Samples.IdentityServer.AdminUiIntegration/appsettings.json b/Rsk.Samples.IdentityServer.AdminUiIntegration/appsettings.json index 1b16944..3fd83fa 100644 --- a/Rsk.Samples.IdentityServer.AdminUiIntegration/appsettings.json +++ b/Rsk.Samples.IdentityServer.AdminUiIntegration/appsettings.json @@ -4,8 +4,10 @@ "IdentityServerConnectionString": "Server=localhost,3306;Uid=docker;Pwd=Welkom1234!;Database=IdentityExpressDb;", "Google_ClientId": "", "Google_ClientSecret": "", + "IdentityStoreSchemaName": "", "OperationalStoreSchemaName": "", "ConfigurationStoreSchemaName": "", + "AuditStoreSchemaName": "", "DynamicAuth": { "Mode": "Duende", "RskComponentLicensee": "DEMO",