WIP: Geo - Package Files in Frontend
Why WIP
-
Fix/create tests -
Merge !32476 (merged) -
Create GIF of working pagination -
Split up MR into smaller chunks -
Create ~"technical debt" issues
MR Breakup
- Add PackageFile Controller, Route, and Vue hook in behind feature flag (
:geo_self_service_framework
) - Add Store Actions/Support for GraphQL
- Hookup Store Actions to UI
- Hook PackageFiles UI to GraphQL
- Add GraphQL Pagination
~"technical debt" issues
- Support Parameterized Routing
- Support Parameterized Views (Navigation Elements and Replicable View)
- Support Parameterized Registries via GraphQL
- Support Designs via GraphQL
- Remove RESTful support from Geo Replicable
What does this MR do?
Closes #208470 (closed)
This MR introduces GraphQL to the Geo frontend.
With it comes Package Files a newly supported registry type in Geo.
The main goal of this MR was to allow for a GraphQL api to fit in the generic Geo components that were using RESTful api exclusively.
Important Notes
-
GlPagination
does not support Cursor based pagination which is what GraphQL uses. Because of this, I had to write a custom pagination logic. - GraphQL uses ApolloClient while RESTful uses axios. A boolean and separate function is required in the store to differentiate the two types of data fetching.
- Our GraphQL endpoint does not support filtering yet, so that is disabled for this iteration.
Screenshots
List View | Paginator | |
---|---|---|
Package Files (New) | ![]() |
![]() |
GIF
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry -
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides - [-] Database guides
-
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers - [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] Label as security and @ mention
@gitlab-com/gl-security/appsec
- [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
- [-] Security reports checked/validated by a reviewer from the AppSec team
Closes #208470 (closed)
Edited by Zack Cuddy