Bug #17424

Updated by Ward Vandewege over 1 year ago

The /groups/{uuid}/contents endpoint collects data from a number of tables, concatenates the results, and returns them. If a paging filter like "uuid" > "xxxx" is used that query, bad things happen - some results are no longer included in the output. 

 That is because the order in which the tables are processed is not the alphabetic sorting order of the object identifier but rather: 

     klasses = [Group, 
      Job, PipelineInstance, PipelineTemplate, ContainerRequest, Workflow, 
      Human, Specimen, Trait] 

 * j7d0g (Group) 
 * 8i9sb (Job) 
 * d1h4v (PipelineInstance) 
 * p5p6p (PipelineTemplate) 
 * xvhdp (ContainerRequest) 
 * 7fd43 (Workflow) 
 * 4zz18 (Collection) 
 * 7a9it (Human) 
 * j58dm (Specimen) 
 * q1cn2 (Trait) 

 Reordering the table list to be in consulted in alphabetical order would solve the problem for the (common) case where all UUIDs are local to the cluster. If there are other cluster UUIDs in those tables, though, the problem will persist, so we need a solution that's a bit more sophisticated. Performance will need to be a consideration.