From 577d54f8ad76dd6caa60c4213d0abab280af6ab3 Mon Sep 17 00:00:00 2001 From: Christian Date: Mon, 15 Dec 2025 16:11:54 -0600 Subject: [PATCH 1/3] POC --- .../RavenPersistenceConfiguration.cs | 2 +- src/ServiceControl.Audit.Persistence/PersistenceSettings.cs | 2 ++ src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs | 1 + .../Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs index eced9e35b2..5dd09b183a 100644 --- a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs +++ b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs @@ -100,7 +100,7 @@ internal static DatabaseConfiguration GetDatabaseConfiguration(PersistenceSettin throw new InvalidOperationException($"{DatabaseMaintenancePortKey} must be an integer."); } - var serverUrl = $"http://localhost:{databaseMaintenancePort}"; + var serverUrl = $"http://{settings.Hostname}:{databaseMaintenancePort}"; var logPath = GetLogPath(settings); diff --git a/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs b/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs index b5b51676de..645f51137b 100644 --- a/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs +++ b/src/ServiceControl.Audit.Persistence/PersistenceSettings.cs @@ -26,5 +26,7 @@ public PersistenceSettings( public int MaxBodySizeToStore { get; set; } public IDictionary PersisterSpecificSettings { get; } + + public string Hostname { get; set; } } } \ No newline at end of file diff --git a/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs b/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs index d65a66697f..cb527de835 100644 --- a/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs +++ b/src/ServiceControl.Audit/HostApplicationBuilderExtensions.cs @@ -35,6 +35,7 @@ public static void AddServiceControlAudit(this IHostApplicationBuilder builder, { var persistenceConfiguration = PersistenceConfigurationFactory.LoadPersistenceConfiguration(settings); var persistenceSettings = persistenceConfiguration.BuildPersistenceSettings(settings); + persistenceSettings.Hostname = settings.Hostname; RecordStartup(settings, configuration, persistenceConfiguration); diff --git a/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs b/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs index 4a92ce6b41..707607f9b4 100644 --- a/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs +++ b/src/ServiceControl.Audit/Infrastructure/Hosting/Commands/MaintenanceModeCommand.cs @@ -15,6 +15,7 @@ public override async Task Execute(HostArguments args, Settings settings) var persistenceSettings = persistenceConfiguration.BuildPersistenceSettings(settings); persistenceSettings.MaintenanceMode = true; + persistenceSettings.Hostname = settings.Hostname; var hostBuilder = Host.CreateApplicationBuilder(); hostBuilder.Services.AddPersistence(persistenceSettings, persistenceConfiguration); From 2528b27a8ee64f4d53f3abd38a6e3a127df0963f Mon Sep 17 00:00:00 2001 From: Dharmishtha Patel Date: Tue, 16 Dec 2025 10:49:49 -0800 Subject: [PATCH 2/3] Test --- .../RavenPersistenceConfiguration.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs index 5dd09b183a..2a3d80e297 100644 --- a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs +++ b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs @@ -100,7 +100,21 @@ internal static DatabaseConfiguration GetDatabaseConfiguration(PersistenceSettin throw new InvalidOperationException($"{DatabaseMaintenancePortKey} must be an integer."); } - var serverUrl = $"http://{settings.Hostname}:{databaseMaintenancePort}"; + // Determine host for embedded RavenDB from persister-specific settings + string host = "localhost"; + + if (settings.PersisterSpecificSettings.TryGetValue("ServiceControl.Audit/HostName", out var configuredHost) || + settings.PersisterSpecificSettings.TryGetValue("ServiceControl/HostName", out configuredHost)) + { + configuredHost = configuredHost?.Trim(); + if (!string.IsNullOrWhiteSpace(configuredHost)) + { + // Map '*' to '+' for Raven wildcard (bind all interfaces). Accept '+' as-is. + host = configuredHost == "*" ? "+" : configuredHost; + } + } + + var serverUrl = $"http://{host}:{databaseMaintenancePort}"; var logPath = GetLogPath(settings); From a93276059d5d93ab5d1f99384102d17726794669 Mon Sep 17 00:00:00 2001 From: Dharmishtha Patel Date: Tue, 16 Dec 2025 17:21:40 -0800 Subject: [PATCH 3/3] Add default hostname value for embedded RavenDB --- .../RavenPersistenceConfiguration.cs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs index 2a3d80e297..d32e87d283 100644 --- a/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs +++ b/src/ServiceControl.Audit.Persistence.RavenDB/RavenPersistenceConfiguration.cs @@ -1,6 +1,7 @@ namespace ServiceControl.Audit.Persistence.RavenDB { using System; + using System.Configuration; using System.Collections.Generic; using System.IO; using System.Reflection; @@ -100,20 +101,13 @@ internal static DatabaseConfiguration GetDatabaseConfiguration(PersistenceSettin throw new InvalidOperationException($"{DatabaseMaintenancePortKey} must be an integer."); } - // Determine host for embedded RavenDB from persister-specific settings - string host = "localhost"; - if (settings.PersisterSpecificSettings.TryGetValue("ServiceControl.Audit/HostName", out var configuredHost) || - settings.PersisterSpecificSettings.TryGetValue("ServiceControl/HostName", out configuredHost)) + string host = "localhost"; + if (!string.IsNullOrEmpty(settings.Hostname)) { - configuredHost = configuredHost?.Trim(); - if (!string.IsNullOrWhiteSpace(configuredHost)) - { - // Map '*' to '+' for Raven wildcard (bind all interfaces). Accept '+' as-is. - host = configuredHost == "*" ? "+" : configuredHost; - } + // Map '*' to '+' for Raven wildcard (bind all interfaces). Accept '+' as-is. + host = settings.Hostname == "*" ? "+" : settings.Hostname; } - var serverUrl = $"http://{host}:{databaseMaintenancePort}"; var logPath = GetLogPath(settings);