Aspire 9.x add sql server database viewer

.NET Aspire is a formidable tool to visualize your components and relation between them . Today I will show you how to add a custom visualizer for SqlServer database .

The code for adding a database is pretty simple

var paramPass = builder.AddParameter("password","P@ssw0rd");
var sqlserver = builder.AddSqlServer("sqlserver",paramPass,1433)
    .WithDbGate()
;
var db = sqlserver.AddDatabase("NewDB")
;

 

 

The community extension,https://github.com/CommunityToolkit/Aspire,has already an extension,WithDBGate,that adds a viewer for the whole SqlServer . But I want something faster,that adds just for the database . So SqlPad,https://getsqlpad.com/,that has also a docker container,will be enough. So this is the code

public  static class SqlServerExtensions
{
    /// <summary>
    /// 
    /// </summary>
    /// <param name="db"></param>
    /// <param name="sqlserver"></param>
    /// <returns></returns>
    public static IResourceBuilder<SqlServerDatabaseResource> WithSqlPadViewerForDB(this IResourceBuilder<SqlServerDatabaseResource> db,IResourceBuilder<SqlServerServerResource> sqlserver) 
    {
    var builder = db.ApplicationBuilder;
    
    var sqlpad = builder
.AddContainer("sqlpad","sqlpad/sqlpad:latest")
.WithEndpoint(5600,3000,"http")
.WithEnvironment("SQLPAD_AUTH_DISABLED","true")
.WithEnvironment("SQLPAD_AUTH_DISABLED_DEFAULT_ROLE","Admin")
.WithEnvironment("SQLPAD_ADMIN","admin@sqlpad.com")

.WithEnvironment("SQLPAD_ADMIN_PASSWORD","admin")
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo__name",sqlserver.Resource.Name)
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo__driver","sqlserver")
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo__host",sqlserver.Resource.Name)
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo__database",db.Resource.Name)
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo__username","sa")
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo__password",sqlserver.Resource.PasswordParameter.Value)


.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo1__name","SqlMaster")
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo1__driver","sqlserver")
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo1__host",sqlserver.Resource.Name)
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo1__database","master")
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo1__username","sa")
.WithEnvironment("SQLPAD_CONNECTIONS__sqlserverdemo1__password",sqlserver.Resource.PasswordParameter.Value)
.WithParentRelationship(db)
.WaitFor(db)
.WaitFor(sqlserver)
;
    return db;
}
}

And the code for adding is

  var db = sqlserver.AddDatabase("NewDB")
  .WithSqlPadViewerForDB(sqlserver);

Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *