Skip to content

Geo Replicables - SSF Filtering Support

Zack Cuddy requested to merge 411981-add-geo-ssf-filtering into master

What does this MR do and why?

Closes #411981 (closed)

This change adds Status Filtering to the Geo Replication views for SSF Replicables. These Replicables are served via GraphQL while the legacy Replicables are served by either RESTful API or Rails/HAML.

Important Context

For all the tabs in the Geo Replication View, the breakdown is as follows:

  • Projects - Served via HAML/Rails and is unaffected and unchanged by this change.
  • Designs - Served via RESTful API and uses shared Vue components. Should be affected but unchanged by this change.
  • Every other tab - Served via GraphQL API and uses shared Vue components. Should be affected and changed by this change.

Screenshots or screen recordings

Geo SSF Replicables Tabs, main focus of this change (every tab aside from Projects and Designs)

Screenshot Usage Video
Before SSF_-_Before N/A
After SSF_-_After SSF_Usage_-_After

Designs Tab - Affected but unchanged by this change

Click to see screenshots/videos
Screenshot Usage Video
Before Non_SSF_-_Before Non_SSF_Usage_-_Before
After Non_SSF_-_After Non_SSF_Usage_-_After

How to set up and validate locally

Seeding Data: You may need to seed some data in different states to test the filtering

Click to see seeding examples

For seeding the SSF Data (the GraphQL served data) you can paste the following in the rails console of your Secondary Site rails c

# `SnippetRepository` can be changed with any of the tab names (aside from Projects/Designs)
# `state` is as follows `0: started, 1: pending, 2: synced, 3: failed`

Geo::SnippetRepositoryRegistry.new(id: 21, snippet_repository_id: 21, state: 1).save

For seeding Design Data (the RESTful served data) you can paste the following in the rails console of your Secondary Site rails c

# `project_id` must be a unique Project for each registry created
# `state` is as follows `pending, synced, failed`

Geo::DesignRegistry.new(id: 3, project_id: 9, state: 'failed').save
  1. Fetch and checkout this branch
  2. Setup Geo by following the 1-line installation in the Easy Installation section (How to setup Geo)
  3. Access your Secondary GDK UI
  4. Navigate to the Geo Replication View for Designs (ex. http://127.0.0.1:3001/admin/geo/replication/designs)
  5. Ensure Designs Tab is same as before this change (aside from filters order)
  6. Navigate to another tab (aside from Projects) and ensure the filtering works as expected

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #411981 (closed)

Edited by Zack Cuddy

Merge request reports

Loading