Create an instance wide catalog for .com (community catalog)

Problem

As the author of a project of components I would like to open source my project to allow anyone to use it and contribute to it.

Background

Following the proposal in gitlab-com/Product#12734

We want to provide a GitLab community experience for the CI/CD components catalog, enabling all users from different organizations to consume and manage their CI/CD components.

  1. Namespace catalog (organizational catalog) - a catalog that is bound to a namespace today (organization when its get introduced)
  2. Community catalog - a catalog that is available in .com only which allow users to share and discover different components that exist in dispersed repositories and organizations.

Requirements

The User experience should be similar to the internal organizational catalog where:

  1. Users / community members are empowered to publish open source CI/CD components
  2. Other community members discover them
  3. And consume them responsibly

Requirements

  1. A single instance could contain multiple organizations, we would need the ability to allow users to search across multiple organization, in Cells blueprint its mentioned that:

    Organizations are isolated from each other by default meaning that cross-Namespace features will only work for Namespaces that exist in a single Organization

    We need a solution that overcomes this limitation.

  2. Components could live in separate organizations on different repositories. Users should be allowed to consume them directly from there, this is why we might need to support the federation of components: Mirror GitLab component projects on self-managed (#415638 - closed)

  3. Any user should be able to contribute and publish a component to the Catalog

  4. Each user should be able to see the published components based on their permission level.

Iteration plan

Action description issue phase
Support federated components Ability to include component from different instance #415638 (closed)
Support cross cell search Foundation work to support cross cell search of components #425750
Support index page search UI (Frontend) part for search a components
Convert/adjust organizational catalog to community Convert the name space catalog index & Detailed page to community catalog #390655 (closed)
Establish community contribution process Streamline the process to contribute a component
Convert existing templates to components We should convert all GitLab template to components
Mirror components we should allow administrators to mirror components from community catalog into Self managed
Support instance wide catalog for Self manage the instance wide catalog will be available in .com only, we should evaluate if it is needed in self manage

Open question

  1. Should all published components be findable in the instance wide catalog, or do we need to force users to do that explicitly?

Out of scope

The Instance wide catalog will be the community catalog, which means it is only applicable for .com, but in the future we may introduce a similar catalog for self manage customers, (in case a self manage instance has multiple organization).

Although this is out of scope for this epic, we should take this requirement into our considerations when designing our solution.

Edited by Sunjung Park