Skip to content

Decouple the dashboard from the Aspire.Hosting during development #1003

@davidfowl

Description

@davidfowl

We want to treat the dashboard like it's just another orchestrated process in your application.

We want to do 2 things to move this forward:

  1. Make the dashboard run as an orchestrated resource. It's no longer special code running in process in the app host, it's out of process.
  2. Define an HTTP API that the dashboard talks to get information. Aspire.Hosting will expose this API in development.

To make 1. work, we would make a dotnet tools package for the dashboard. The app model would define a new "tools package resource" that would install the dotnet tool and then run it as an orchestrated process. This would mean the dashboard and its dependencies would be fully isolated and it would run like tool (this has other benefits as well). It would be configured with the HTTP end point to get information from (the running app host itself). It also means we would update the templates to have an AddAspireDashboard call on the IDistributedApplicationBuilder. No call, no dashboard.

For the secod, we need to define an HTTP API to enable the dashboard to get data about the model. We also need to take versioning into consideration. Right now, we're using the k8s API talking to DCP directly, and augmenting it with additional data from the DistributedApplicationModel. The API is a contract for the dashboard, not DCP or Aspire.Hosting and it should be modeled as such.

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions