Service/Application Dependency Graph Implement (#1460) * feat(ui): Added application and service topology mapping feature * style(ui-vue3): Add a minimum width to the login form and remove unnecessary blank lines * Feat: Add service and application topology graph APIs based on discussion #1398 * feat(api): add GraphServices endpoint for service-level topology Based on discussion #1398, use ServiceProviderMetadata and ServiceConsumerMetadata to return provider/consumer application relations as graph nodes and edges for AntV G6. * feat(api): add GraphApplications endpoint for application-level topology Traverse provider/consumer service relations to build application-level graph. Also add idx_service_consumer_service_key index to support efficient serviceKey queries. * feat(api): add graph models (GraphNode, GraphEdge, GraphData) in pkg/console/model/graph.go * feat(api): add ApplicationGraphReq, ServiceGraphReq and GetApplicationGraph, GetServiceGraph handlers * feat(router): register /application/graph and /service/graph routes * feat(api): fix error handling to use direct err pass-through instead of MeshNotFoundError * Feat: Enhance service metadata derivation and detail retrieval ([#1430](https://github.com/apache/dubbo-admin/issues/1430)) * feat(api): replace Service.{providers,consumers,features} with {methods} field Simplify Service proto by removing providers, consumers, and features map, keeping only the aggregated methods list derived from provider metadata. * feat(api): derive Service resource from ServiceProviderMetadata on add/update/delete ServiceProviderMetadataEventSubscriber now maintains Service resources by aggregating methods from all provider instances sharing the same serviceKey. Handles add, update, and delete events to keep Service spec in sync. * feat(api): add language detection from provider metadata parameters Detect provider language (golang/java) from metadata parameters and method type signatures when explicit language field is absent. * feat(api): add GetServiceDetail endpoint returning language and methods Add GET /service/detail returning ServiceDetailResp with language and aggregated method names from the derived Service resource. * feat(api): add BuildServiceIdentityKey helper for {service}:{version}:{group} * feat(api): add ByServiceName index for ServiceKind * feat(api): refactor SearchServices to query ServiceResource directly SearchServices and SearchServicesByKeywords now use ServiceResource instead of ServiceProviderMetadataResource for service listing. * feat(api): remove providerAppName from ServiceSearchResp and ServiceTabDistributionReq * feat(api): add ServiceDetailReq and ServiceDetailResp models * feat(router): register /service/detail and /service/interfaces routes * feat(ui-vue3): remove providerAppName from grafana types and tab components * chore: Add G6 chart library and its dependencies to the project * chore(assets): Add Apache license and format code for iconfont file * fix: Correct the naming errors in the application topology graph API parameters and improve the code comments * chore: minor cleanup - fix comment language and import order * chore: translate Chinese comment to English in GraphApplications error handling * chore: reorder imports in service_provider_metadata.go * fix:Fix parameter passing error when obtaining application details * fix: fix type mismatch and index issues in service search and metadata sync 1. pkg/console/service/service.go:132 - fix generic type mismatch with resourceKind - generic ServiceResource should use ServiceKind, was incorrectly passing ServiceProviderMetadataKind - index changed from ByServiceProviderServiceName to ByServiceName (aligned with ServiceKind) 2. pkg/core/discovery/subscriber/service_provider_metadata.go - processUpdate: remove redundant oldRes key check (oldKey always equals newKey in same resource update, else branch is unreachable dead code) - syncService: use ByServiceProviderServiceKey index instead of ByServiceProviderServiceName + manual version/group filtering, reduces data returned from DB and improves performance Ref: [1460](https://github.com/apache/dubbo-admin/pull/1460#discussion_r3106255166) * Feat: Add coding agent domain skills ([#1457](https://github.com/apache/dubbo-admin/issues/1457)) * feat(skills): add backend domain skills for runtime, discovery, engine, events, store, and Console API Document component lifecycle, ListAndWatch discovery, resource engine behavior, EventBus dispatching, storage indexes, and Web MVC flow for coding agents. * feat(skills): add frontend domain skill for routing, components, and traffic rule forms Document Vue frontend structure, API clients, Pinia state, route metadata, layout tabs, and traffic rule form design. * feat(skills): add OpenAI skill metadata Add agents/openai.yaml metadata for each dubbo-admin domain skill. * fix(console): use ServiceKind for service list search Query ServiceResource from ServiceKind instead of ServiceProviderMetadataKind so the non-keyword service list path uses the matching resource store and index set. --------- Co-authored-by: sohandsomejie <3080955413@qq.com> Co-authored-by: MoChengqian <2972013548@qq.com>
Dubbo Admin is the console designed for better visualization of Dubbo applications.
The main code repositories of Dubbo Admin include:
Please refer to official website.
Please refer to RoadMap.
Refer to CONTRIBUTING.md
Apache License 2.0, see LICENSE.