The current data search approach for personal, project, and shared data needs to be simplified and made more performant on the back-end. Currently, the formed queries are a complex join between flat indexes and multiple graph traversals. Need to analyze the search scopes and design a way to flatten the entire search into a single index (the same way that the catalog search works).
Collection-specific searches will need to be handled separately and may need to be restricted in some ways (to avoid joins and limit execution time).
The web portal UI, CLI, and Python API will all need to be updated to work with the new approach.
This is an EPIC issue that will have other issues linked to it.
To apply an arango view to personal data search, it must support several starting points / filter options:
All data owned by current user. This is a simple filter based on indexed data owner field.
All data owned by a project (all or selected) that current user is associated with. Same as above, except it is a project or list of project IDs that can be data owners.
All data shared with current user by other user(s) or project(s). This requires a graph traversal to determine the list of shared items to evaluate, it cannot be done with a view.
All data contained within one or more specified collections. This also requires a traversal and cannot be done with a view.
The current data search approach for personal, project, and shared data needs to be simplified and made more performant on the back-end. Currently, the formed queries are a complex join between flat indexes and multiple graph traversals. Need to analyze the search scopes and design a way to flatten the entire search into a single index (the same way that the catalog search works).
Collection-specific searches will need to be handled separately and may need to be restricted in some ways (to avoid joins and limit execution time).
The web portal UI, CLI, and Python API will all need to be updated to work with the new approach.
This is an EPIC issue that will have other issues linked to it.