{"pviz_slice":true,"schema_version":"pviz-slice@v1","tool":"framework_inventory","generated_at":"2026-11-03T17:29:51.473582+00:00","bundle":{"path":"/b/bundle.json","repo":"eshop","node_count":567,"edge_count":1398},"params":{"command":"framework-inventory","kind":"endpoints","framework":null,"language":null,"status":null,"symbol":null,"match":"exact","max_rows":200},"result":{"schema":"pviz.slice.framework_inventory.v1","filters":{"kind":"endpoints","kinds":["ROUTE_HANDLER","FILE_ROUTE","RPC_IMPLEMENTATION"],"framework":[],"language":[],"status":[],"symbol":null,"match":"exact"},"rows_source":"sidecar","rows_complete":true,"population":{"state":"used","sidecar":"bundle.framework_facts.json","sha256":"57b038a9987f3b9c3d050c7318c1020f43e86b2537bcfd52e8cd0a3f70d13ba8","rows_total":92},"by_status":{"EXACT":14,"UNRESOLVED":3},"by_status_total":2,"by_status_truncated":false,"by_framework":{"aspnetcore":17},"by_framework_total":1,"by_framework_truncated":false,"rows":[{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.AccessDenied:HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Account/AccountController.cs","site_line":196,"target":"src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.AccessDenied","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Login(IdentityServerHost.Quickstart.UI.LoginInputModel,System.String):HttpPostAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Account/AccountController.cs","site_line":59,"target":"src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Login(IdentityServerHost.Quickstart.UI.LoginInputModel,System.String)","method":"POST","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:POST:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Login(System.String):HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Account/AccountController.cs","site_line":39,"target":"src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Login(System.String)","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Logout(IdentityServerHost.Quickstart.UI.LogoutInputModel):HttpPostAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Account/AccountController.cs","site_line":165,"target":"src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Logout(IdentityServerHost.Quickstart.UI.LogoutInputModel)","method":"POST","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:POST:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Logout(System.String):HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Account/AccountController.cs","site_line":146,"target":"src/Identity.API/Quickstart/Account/AccountController.cs#IdentityServerHost.Quickstart.UI.AccountController.Logout(System.String)","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Account/ExternalController.cs#IdentityServerHost.Quickstart.UI.ExternalController.Callback:HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Account/ExternalController.cs","site_line":63,"target":"src/Identity.API/Quickstart/Account/ExternalController.cs#IdentityServerHost.Quickstart.UI.ExternalController.Callback","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Account/ExternalController.cs#IdentityServerHost.Quickstart.UI.ExternalController.Challenge:HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Account/ExternalController.cs","site_line":33,"target":"src/Identity.API/Quickstart/Account/ExternalController.cs#IdentityServerHost.Quickstart.UI.ExternalController.Challenge","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Consent/ConsentController.cs#IdentityServerHost.Quickstart.UI.ConsentController.Index(IdentityServerHost.Quickstart.UI.ConsentInputModel):HttpPostAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Consent/ConsentController.cs","site_line":47,"target":"src/Identity.API/Quickstart/Consent/ConsentController.cs#IdentityServerHost.Quickstart.UI.ConsentController.Index(IdentityServerHost.Quickstart.UI.ConsentInputModel)","method":"POST","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:POST:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Consent/ConsentController.cs#IdentityServerHost.Quickstart.UI.ConsentController.Index(System.String):HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Consent/ConsentController.cs","site_line":32,"target":"src/Identity.API/Quickstart/Consent/ConsentController.cs#IdentityServerHost.Quickstart.UI.ConsentController.Index(System.String)","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Device/DeviceController.cs#IdentityServerHost.Quickstart.UI.DeviceController.Callback:HttpPostAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Device/DeviceController.cs","site_line":51,"target":"src/Identity.API/Quickstart/Device/DeviceController.cs#IdentityServerHost.Quickstart.UI.DeviceController.Callback","method":"POST","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:POST:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Device/DeviceController.cs#IdentityServerHost.Quickstart.UI.DeviceController.Index:HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Device/DeviceController.cs","site_line":27,"target":"src/Identity.API/Quickstart/Device/DeviceController.cs#IdentityServerHost.Quickstart.UI.DeviceController.Index","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Device/DeviceController.cs#IdentityServerHost.Quickstart.UI.DeviceController.UserCodeCapture:HttpPostAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Device/DeviceController.cs","site_line":41,"target":"src/Identity.API/Quickstart/Device/DeviceController.cs#IdentityServerHost.Quickstart.UI.DeviceController.UserCodeCapture","method":"POST","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:POST:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Grants/GrantsController.cs#IdentityServerHost.Quickstart.UI.GrantsController.Index:HttpGetAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Grants/GrantsController.cs","site_line":32,"target":"src/Identity.API/Quickstart/Grants/GrantsController.cs#IdentityServerHost.Quickstart.UI.GrantsController.Index","method":"GET","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:GET:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/Identity.API/Quickstart/Grants/GrantsController.cs#IdentityServerHost.Quickstart.UI.GrantsController.Revoke:HttpPostAttribute#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"EXACT","mechanism":"annotation","site_file":"src/Identity.API/Quickstart/Grants/GrantsController.cs","site_line":41,"target":"src/Identity.API/Quickstart/Grants/GrantsController.cs#IdentityServerHost.Quickstart.UI.GrantsController.Revoke","method":"POST","path":"/{conventional}","path_status":"UNRESOLVED","join":"http:POST:~/:id"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/WebhookClient/Endpoints/AuthenticationEndpoints.cs#eShop.WebhookClient.Endpoints.AuthenticationEndpoints.MapAuthenticationEndpoints:MapPost#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"UNRESOLVED","mechanism":"imperative_call","site_file":"src/WebhookClient/Endpoints/AuthenticationEndpoints.cs","site_line":12,"reason":"unsupported_form","method":"POST","path":"/logout","path_status":"EXACT","join":"http:POST:/logout"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/WebhookClient/Endpoints/WebhookEndpoints.cs#eShop.WebhookClient.Endpoints.WebhookEndpoints.MapWebhookEndpoints:MapPost#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"UNRESOLVED","mechanism":"imperative_call","site_file":"src/WebhookClient/Endpoints/WebhookEndpoints.cs","site_line":31,"reason":"unsupported_form","method":"POST","path":"/webhook-received","path_status":"EXACT","join":"http:POST:/webhook-received"},{"id":"fw:aspnetcore:ROUTE_HANDLER:src/eShop.ServiceDefaults/OpenApi.Extensions.cs#eShop.ServiceDefaults.Extensions.UseDefaultOpenApi:MapGet#1","framework":"aspnetcore","language":"csharp","kind":"ROUTE_HANDLER","status":"UNRESOLVED","mechanism":"imperative_call","site_file":"src/eShop.ServiceDefaults/OpenApi.Extensions.cs","site_line":41,"reason":"unsupported_form","method":"GET","path":"/","path_status":"EXACT","join":"http:GET:/"}],"rows_total":17,"rows_truncated":false,"notes":["Framework registrations are not calls: a handler reached by a router has no call_graph caller.","Only EXACT rows bind `target` (the call-graph id); AMBIGUOUS rows list `candidates`; UNRESOLVED/EXTERNAL rows carry `raw` + `reason`."]}}