Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dashboard should show custom resources #436

Closed
davidfowl opened this issue Oct 21, 2023 · 9 comments · Fixed by #2390
Closed

Dashboard should show custom resources #436

davidfowl opened this issue Oct 21, 2023 · 9 comments · Fixed by #2390
Assignees
Labels
area-app-model Issues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication area-dashboard

Comments

@davidfowl
Copy link
Member

davidfowl commented Oct 21, 2023

Today the dashboard shows projects, containers, executables, while these are the core "launchable" primitives, things like AzureServiceBus and PostgresConnection don't show up. We should show other resources that come the application model directly that aren't part of the DCP model.

In eshoplite, there's no way to see the azure service bus resource:

image
@smitpatel smitpatel self-assigned this Oct 21, 2023
@dbreshears dbreshears added this to the some time after preview milestone Oct 23, 2023
@dbreshears
Copy link
Contributor

Added for Post Preview so we can work with @leslierichardson95 for a design

@davidfowl
Copy link
Member Author

@mitchdenny would appreciate your thoughts on this. I was thinking one thing we could do is show data from known annotations and interfaces (IResourceWithConnectionString) in the grid.

@mitchdenny
Copy link
Member

I think we should change the dashboard to query the components from the app model vs. querying DCP - and yes I think the dashboard should show custom resources. I would actually prefer that we just have a unified list of resources rather than breaking them out by container / executable etc. Then with a drop down to filter by component type.

I'd also like to enable resources to offer up information/actions that can be accessed from the portal. For example for Redis I'd really like to be able to do things like clear out the cache without having to restart everything. We don't need to solve all these specific things with this issue, but what we should be thinking about is how do we create the room to create a really great local development experience here.

@davidfowl
Copy link
Member Author

davidfowl commented Oct 28, 2023

I think we should change the dashboard to query the components from the app model vs. querying DCP - and yes I think the dashboard should show custom resources. I would actually prefer that we just have a unified list of resources rather than breaking them out by container / executable etc. Then with a drop down to filter by component type.

💯!

I was going to file a new bug for this one, but I want to see connection strings for existing container resources. Right now, I can only find this by looking at resources that added a reference which is pretty indirect.

I'd also like to enable resources to offer up information/actions that can be accessed from the portal. For example for Redis I'd really like to be able to do things like clear out the cache without having to restart everything. We don't need to solve all these specific things with this issue, but what we should be thinking about is how do we create the room to create a really great local development experience here.

I would start with a purely read only experience and then discuss how to formalize the actions on resources. It does sound like a really cool thing to do though!

@mitchdenny
Copy link
Member

t does sound like a really cool thing to do though!

Baby steps

@danmoseley danmoseley removed this from the needs milestone (for GA) milestone Nov 13, 2023
@davidfowl davidfowl added this to the preview 3 (Jan) milestone Nov 30, 2023
@davidfowl
Copy link
Member Author

@kvenkatrajan Putting this in preview3 (it might slip to 4)

@smitpatel
Copy link
Contributor

In order for us to show custom resources we need to invert our current way of computing view models for dashboard. Right now we get data from dcp and fill in places from application model where needed (specifically for endpoint details from launch profiles).
In inverted way, we will basically utilize the resources which are in application model and for well-known resource kinds like Executable/Container, we will ask dcp to provide information regarding current run and fill the view model.

@davidfowl
Copy link
Member Author

After this change we will be using the distributed application model as the source of truth, not dcp. Dcp will enrich the values resources with data about what’s actually running

@drewnoakes
Copy link
Member

Status update:

  • The communication protocol between AppHost and Dashboard supports arbitrary resource types. The UI will show custom resources.
  • With Add resource details panel #1542, we can show all property name/value pairs a resource defines.
  • We must still update the AppHost's implementation of the resource service to pull from the Distributed Application Model.
  • Getting new resource types will draw out requirements and designs for further improvements.

@github-actions github-actions bot locked and limited conversation to collaborators May 1, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-app-model Issues pertaining to the APIs in Aspire.Hosting, e.g. DistributedApplication area-dashboard
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants