Geo: Self Service Framework - Second Implementation for Snippet replication
Engineering Owner: @mkozono ### Problem to solve - Snippets will be implemented as repositories. Geo does not currently replicate - This is an opportunity for the Geo team to tackle the repository data type for the self service framework ### Intended users This is relevant for GitLab customers and users who already have a working Geo setup and/or who are considering enabling Geo for either DR or Geo replication features. ### Further details <!-- Include use cases, benefits, and/or goals (contributes to our vision?) --> Our customers have a reasonable expectation that new data types being made in Geo in a timely manner. This is a step towards adding another data type and it will bring us close to finishing work on [adding all unreplicated data types](https://gitlab.com/groups/gitlab-org/-/epics/893) ### Proposal This epic serves two purposes: 1. Provide Geo support for snippets 1. Create a second implementation of the Geo self-service framework for repositories These are the likely steps needed: * Geo: Produce events for Repository replication * Geo: Add Geo token support to snippet authentication * Geo: Consume the events for Repository replication on the secondary * Geo: Implement Snippets front-end in Admin screen * Geo: Developer documentation on Repository replication ### Permissions and Security Follow existing permissions and restrictions already in place for other Geo and repositories replication. ### Documentation In order to make the Geo self-service framework a success we should start writing developer documentation that highlights exactly how to add a new data type. A first iteration should be part of this epic. ### Testing Ideally we should be able to generalize the tests so that anyone using the framework can just reuse the them as shared_examples. For end-to-end tests see the [testing section of the parent epic](https://gitlab.com/groups/gitlab-org/-/epics/2161#testing). ### What does success look like, and how can we measure that? * Snippets repositories should be supported - they can be replicated and the status is shown on the admin UI * Developer implementation for the self-service framework should include how to replicate repository types ### What is the type of buyer? * Ultimate * Premium ### Links / references * https://gitlab.com/groups/gitlab-org/-/epics/2161 * https://docs.gitlab.com/ee/user/snippets/
epic