Skip to content

Support specifying a ReferenceExpression to AddConnectionString #7641

@davidfowl

Description

@davidfowl

This enables the creation of a "Just in time" resource with a custom connection string with slots that have to be filled in from the outside.

var builder = DistributedApplication.CreateBuilder(args);

var endpoint = builder.AddParameter("endpoint");
var secret = builder.AddParameter("key", secret: true);

builder.AddOpenAI("oai", endpoint, secret);

builder.Build().Run();

static class ConnectionStringExtensions
{
    public static IResourceBuilder<IResourceWithConnectionString> AddOpenAI(
        this IDistributedApplicationBuilder builder,
        string name,
        IResourceBuilder<ParameterResource> endpoint,
        IResourceBuilder<ParameterResource> key)
    {
        var csb = new ReferenceExpressionBuilder();
        csb.Append($"Endpoint={endpoint.Resource};");
        csb.Append($"Key={key.Resource}");
        return builder.AddConnectionString(name, csb.Build());
    }
}

Metadata

Metadata

Assignees

Labels

area-app-modelIssues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions