diff --git a/src/Aspire.Hosting/ConnectionStringBuilderExtensions.cs b/src/Aspire.Hosting/ConnectionStringBuilderExtensions.cs index a135223a919..d6ce9a2f5d2 100644 --- a/src/Aspire.Hosting/ConnectionStringBuilderExtensions.cs +++ b/src/Aspire.Hosting/ConnectionStringBuilderExtensions.cs @@ -45,8 +45,6 @@ public static IResourceBuilder AddConnectionString(thi { ResourceType = KnownResourceTypes.ConnectionString, State = KnownResourceStates.Waiting, - // TODO: We'll hide this until we come up with a sane representation of these in the dashboard - IsHidden = true, Properties = [] }); } diff --git a/src/Aspire.Hosting/Orchestrator/ApplicationOrchestrator.cs b/src/Aspire.Hosting/Orchestrator/ApplicationOrchestrator.cs index 153431f6b96..8447a69d31d 100644 --- a/src/Aspire.Hosting/Orchestrator/ApplicationOrchestrator.cs +++ b/src/Aspire.Hosting/Orchestrator/ApplicationOrchestrator.cs @@ -327,7 +327,7 @@ void InitializeConnectionString(ConnectionStringResource connectionStringResourc await PublishConnectionStringAvailableEvent(connectionStringResource, cancellationToken).ConfigureAwait(false); await _notificationService.PublishUpdateAsync(connectionStringResource, s => s with { - State = new(KnownResourceStates.Active, KnownResourceStateStyles.Info), + State = new(KnownResourceStates.Active, KnownResourceStateStyles.Success), }).ConfigureAwait(false); }, cancellationToken); } diff --git a/src/Aspire.Hosting/Orchestrator/ParameterProcessor.cs b/src/Aspire.Hosting/Orchestrator/ParameterProcessor.cs index c8d285aaa74..40550fe85ba 100644 --- a/src/Aspire.Hosting/Orchestrator/ParameterProcessor.cs +++ b/src/Aspire.Hosting/Orchestrator/ParameterProcessor.cs @@ -106,8 +106,7 @@ await notificationService.PublishUpdateAsync(parameterResource, s => return s with { State = new(stateText, KnownResourceStateStyles.Error), - Properties = s.Properties.SetResourceProperty(KnownProperties.Parameter.Value, ex.Message), - IsHidden = false + Properties = s.Properties.SetResourceProperty(KnownProperties.Parameter.Value, ex.Message) }; }) .ConfigureAwait(false); diff --git a/src/Aspire.Hosting/ParameterResourceBuilderExtensions.cs b/src/Aspire.Hosting/ParameterResourceBuilderExtensions.cs index 08fd709dc1c..4601b7357ec 100644 --- a/src/Aspire.Hosting/ParameterResourceBuilderExtensions.cs +++ b/src/Aspire.Hosting/ParameterResourceBuilderExtensions.cs @@ -162,8 +162,6 @@ internal static IResourceBuilder AddParameter(this IDistributedApplication var state = new CustomResourceSnapshot { ResourceType = KnownResourceTypes.Parameter, - // hide parameters by default - IsHidden = true, Properties = [ new("parameter.secret", resource.Secret.ToString()), new(CustomResourceKnownProperties.Source, resource.ConfigurationKey) diff --git a/tests/Aspire.Hosting.Tests/AddParameterTests.cs b/tests/Aspire.Hosting.Tests/AddParameterTests.cs index 8922f2cf336..9d41478fbb2 100644 --- a/tests/Aspire.Hosting.Tests/AddParameterTests.cs +++ b/tests/Aspire.Hosting.Tests/AddParameterTests.cs @@ -1,6 +1,7 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using Aspire.Dashboard.Model; using Aspire.Hosting.Publishing; using Aspire.Hosting.Utils; using Microsoft.AspNetCore.InternalTesting; @@ -13,7 +14,7 @@ namespace Aspire.Hosting.Tests; public class AddParameterTests { [Fact] - public void ParametersAreHiddenByDefault() + public void ParametersAreVisibleByDefault() { var appBuilder = DistributedApplication.CreateBuilder(); appBuilder.Configuration["Parameters:pass"] = "pass1"; @@ -31,7 +32,7 @@ public void ParametersAreHiddenByDefault() var state = annotation.InitialSnapshot; - Assert.True(state.IsHidden); + Assert.False(state.IsHidden); Assert.Collection(state.Properties, prop => { @@ -360,4 +361,29 @@ public override void WriteToManifest(ManifestPublishingContext context) throw new NotImplementedException(); } } + + [Fact] + public void ConnectionStringsAreVisibleByDefault() + { + var appBuilder = DistributedApplication.CreateBuilder(); + var endpoint = appBuilder.AddParameter("endpoint", "http://localhost:3452"); + var key = appBuilder.AddParameter("key", "secretKey", secret: true); + + appBuilder.AddConnectionString("testcs", ReferenceExpression.Create($"Endpoint={endpoint};Key={key}")); + + using var app = appBuilder.Build(); + + var appModel = app.Services.GetRequiredService(); + + var connectionStringResource = Assert.Single(appModel.Resources.OfType()); + var annotation = connectionStringResource.Annotations.OfType().SingleOrDefault(); + + Assert.NotNull(annotation); + + var state = annotation.InitialSnapshot; + + Assert.False(state.IsHidden); + Assert.Equal(KnownResourceTypes.ConnectionString, state.ResourceType); + Assert.Equal(KnownResourceStates.Waiting, state.State?.Text); + } }