Add feature flag for global snippet search
What does this MR do and why?
Adds a feature flag for global snippet searches. The flag is enabled by default so that self-managed can continue as usual. On Gitlab.com, we will disable the feature flag.
API
- Feature flag is enabled: Global level Snippet searches are available.
- Feature flag is disabled: Global level Snippet searches are not available, and give a 403 response with
403 Forbidden - Global Search is disabled for this scope
UI
To get to global snippet search: go to /dashboard/snippets
, click on the search bar, enter a term and press enter.
- Feature flag enabled: Snippet tab and search is available
- Feature flag disabled: Redirects to
/search
with an alert
FYI: snippet search UI is broken: the counts for all scopes are set to the snippet count and if you click on another scope, it remains on snippets:
Screen_Recording_2023-06-15_at_14.48.05
How to set up and validate locally
- Enable the feature flag:
Feature.enable(:global_search_snippet_titles_tab)
- Make an API call with the scope
snippet_titles
without a group/project: E.g.http://127.0.0.1:3000/api/v4/search?scope=snippet_titles&search=test
- The request should succeed
- Disable the feature flag:
Feature.disable(:global_search_snippet_titles_tab)
- Make an API call with the scope
snippet_titles
without a group/project: E.g.http://127.0.0.1:3000/api/v4/search?scope=snippet_titles&search=test
- The request should fail with an error "403 Forbidden - Global Search is disabled for this scope"
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #415251 (closed)
Edited by Madelein van Niekerk