Skip to content

UI: Maven virtual registry details page

Proposal

The registry details page will render all the upstreams for the maven virtual registry.

The user should also be able to create upstream from this page. The position of the upstream can be updated by using the arrow keys, drag n drop support can be part of future iteration.

We also show some metadata information related to the registry, links to edit the registry & upstreams.

Designs

Implementation plan

The entire page will be rendered using a vue app.

  1. Create a component with story file which renders the entire app without data fetching.
  2. Implement the features based on proposed GraphQL query API. Alternatively if it not available, we can use the REST API.
  3. Once the routes & controllers are available, create page level component which handles API.
  4. Using drag-and-drop to re-order upstream positions can be part of next iteration.

2025-04-23 Implementation update

The remaining parts are the aspects not in the component, which can be delivered iteratively:

  1. rendering upstream items with actions,
    1. Link to edit
    2. Delete button, modal with API integration.
  2. Once the routes & controllers are available, create page level component which handles API.
  3. Create upstream form with API integration
  4. Update positions of upstreams with API integration

The Clear all & Clear cache buttons for upstream need not be added since we don't have APIs for it.

2025-04-29 Implementation update

Components exist already for maven_registry_details (added in #537051 (closed)) and maven_upstream_details (added in #537052 (closed)). However, the actual information about an upstream in maven_registry_details is stubbed out and functionality to create new upstreams is not implemented.

  1. A new component is needed for the details on a specific upstream in maven_registry_details. We'll call it registry_upstream_item. This implements the design seen here for individual items in the list of upstreams.
    • drag and drop will not be implemented at this time, that will need to be covered in a future iteration. However, manual reordering buttons will be implemented.
    • Some consideration will be made for responsive layout of individual upstream items.
  2. A new component is needed for the Vue form used to add a new upstream in the maven_registry_details component. this implements this design.
  3. Some tweaks to the TitleArea spacing and layout are needed to align with the design intent from #493842[Registry-with-upstream.png].

2025-05-17 implementation plan for remaining work

Since the registry is loaded in the controller when user visits this route, we can have a combination of data provided by rails helpers & REST API similar to Implement Maven upstream details page (!191541 - merged),

  1. Add element with id in ee/app/views/groups/virtual_registries/maven/registries/show.html.haml
  2. Re-use parts of ee/app/assets/javascripts/packages_and_registries/virtual_registries/components/maven_registry_details_app.vue into its own page-level component ee/app/assets/javascripts/packages_and_registries/virtual_registries/maven/registry_details_app.vue (needs to be created)
  3. Import newly-created maven/registry_details_app into ee/app/assets/javascripts/pages/groups/virtual_registries/maven/registries/show/index.js
  4. Pass maven registry related data via rails helpers & provide
Edited by Rahul Chanila