From 3b52e1ef493cdcdfadef8abadf7171d637cb6620 Mon Sep 17 00:00:00 2001 From: Callum Whyte Date: Wed, 1 Oct 2025 05:46:10 +0100 Subject: [PATCH 1/2] Attempt to add connection string to appsettings.Development.json during installer --- .../Configuration/JsonConfigManipulator.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs b/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs index 1800954848f4..aa0a9ac0f588 100644 --- a/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs +++ b/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs @@ -33,7 +33,8 @@ public JsonConfigManipulator(IConfiguration configuration, ILogger public async Task RemoveConnectionStringAsync() { - JsonConfigurationProvider? provider = GetJsonConfigurationProvider(UmbracoConnectionStringPath); + // attempt to get the Development configuration, fallback to default + JsonConfigurationProvider? provider = GetJsonConfigurationProvider("Development", UmbracoConnectionStringPath) ?? GetJsonConfigurationProvider(requiredKey: UmbracoConnectionStringPath); JsonNode? jsonNode = await GetJsonNodeAsync(provider); @@ -52,7 +53,9 @@ public async Task RemoveConnectionStringAsync() /// public async Task SaveConnectionStringAsync(string connectionString, string? providerName) { - JsonConfigurationProvider? provider = GetJsonConfigurationProvider(); + // attempt to get the Development configuration, fallback to default + JsonConfigurationProvider? provider = GetJsonConfigurationProvider("Development") ?? GetJsonConfigurationProvider(); + JsonNode? node = await GetJsonNodeAsync(provider); if (node is null) @@ -237,7 +240,7 @@ private async Task SaveJsonAsync(JsonConfigurationProvider? provider, JsonNode j } } - private JsonConfigurationProvider? GetJsonConfigurationProvider(string? requiredKey = null) + private JsonConfigurationProvider? GetJsonConfigurationProvider(string? environment = null, string? requiredKey = null) { if (_configuration is not IConfigurationRoot configurationRoot) { @@ -247,6 +250,7 @@ private async Task SaveJsonAsync(JsonConfigurationProvider? provider, JsonNode j foreach (IConfigurationProvider provider in configurationRoot.Providers) { if (provider is JsonConfigurationProvider jsonConfigurationProvider && + (environment is null || provider.Source.Path.EndsWith($"appsettings.{environment}.json")) && (requiredKey is null || provider.TryGet(requiredKey, out _))) { return jsonConfigurationProvider; From 317bc54b8635f651755fc867777f8602f50375e6 Mon Sep 17 00:00:00 2001 From: Callum Whyte Date: Wed, 1 Oct 2025 07:36:07 +0100 Subject: [PATCH 2/2] Correct provider reference --- .../Configuration/JsonConfigManipulator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs b/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs index aa0a9ac0f588..53eb908f3731 100644 --- a/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs +++ b/src/Umbraco.Infrastructure/Configuration/JsonConfigManipulator.cs @@ -250,7 +250,7 @@ private async Task SaveJsonAsync(JsonConfigurationProvider? provider, JsonNode j foreach (IConfigurationProvider provider in configurationRoot.Providers) { if (provider is JsonConfigurationProvider jsonConfigurationProvider && - (environment is null || provider.Source.Path.EndsWith($"appsettings.{environment}.json")) && + (environment is null || jsonConfigurationProvider.Source.Path.EndsWith($"appsettings.{environment}.json")) && (requiredKey is null || provider.TryGet(requiredKey, out _))) { return jsonConfigurationProvider;