Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search/Sort/Order for jobs, services, files, process_graphs #103

Open
m-mohr opened this issue Jul 4, 2018 · 5 comments
Open

Search/Sort/Order for jobs, services, files, process_graphs #103

m-mohr opened this issue Jul 4, 2018 · 5 comments
Labels
job management incl. /result minor requires a minor-version (x.1.0 for example) process graph management service management user management incl. authorization, account management and billing
Milestone

Comments

@m-mohr
Copy link
Member

m-mohr commented Jul 4, 2018

I'm wondering whether it could be useful to introduce searching (adopt OpenSearch parameters?) and pagination to the collections, i.e. for the list of jobs, services, files, process_graphs? File and job lists may get very long, I assume.

@m-mohr m-mohr added in discussion job management incl. /result service management user management incl. authorization, account management and billing process graph management labels Jul 4, 2018
@m-mohr m-mohr added this to the v0.3 milestone Jul 4, 2018
@m-mohr m-mohr changed the title Pagination and (Open)Search for jobs, services, files, process_graphs Pagination and searching for jobs, services, files, process_graphs Jul 4, 2018
@m-mohr m-mohr modified the milestones: v0.3, v1.0 Jul 5, 2018
@m-mohr m-mohr modified the milestones: v1.0, v0.5 Sep 12, 2018
@m-mohr
Copy link
Member Author

m-mohr commented Nov 7, 2018

Idea for pagination: Pagination should not be used by default. If a client wants to use pagination it needs to send a parameter such as "count" (number of elements) or "page" (page number) with the request. In this case the endpoint returns the requested subset of elements and adds a link with next (and prev) rel types to the links array. The clients can follow these links to the other datasets. If a server does not support pagination, it should return an error such as "PaginationNotSupported" and the client can decide whether it tries again without pagination or not. Returning the full list of elements instead of an error is critical as some applications may have problems with big datasets, which may lead to a slow down/crash/... in the worst case.

As client-side searching/sorting/ordering only works with all elements (i.e. it doesn't work with pagination) this needs to be enabled server-side and therefore needs to be part of the API.

@m-mohr m-mohr modified the milestones: v0.5, v1.0 Dec 6, 2018
@m-mohr
Copy link
Member Author

m-mohr commented Mar 13, 2019

Related issues:

As we are already using STAC/WFS3 we can go the same way. Call the parameter limit and use it to request paginated data. Use next links (optionally also prev) to pagination. Allow startIndex as an extension (though we could also skip that for simplicity).

@m-mohr m-mohr modified the milestones: future, v1.0 Jun 12, 2019
@m-mohr
Copy link
Member Author

m-mohr commented Sep 12, 2019

Discussed in 3rd year planning:

  • We plan to integrate pagination. By default all data is returned, if a limit parameter is set the number of results is returned.
  • Idea was also to return the count of pages somehow so that a number of pages can be calculated.
  • Pagination by page numbers or next/prev links?

No searching/filtering for now, that includes no OpenSearch (see #68) for now. Searching/filtering (incl. support for OpenSearch), may be added in the future whenever people express interest for it. OpenSearch could be added s an extension as proposed in #120.

Edit: Depends on results in STAC sprint #5 so that we have a consistent interface.

@m-mohr
Copy link
Member Author

m-mohr commented Nov 1, 2019

The OAFeat-based endpoint /collections doesn't support pagination, only /collections/:id/items supports it. As it's quite useful for several purposes to know all collections and processes anyway, I'll check whether we only add pagination for non-discovery data (jobs, process graphs, services, files).

If we change process graphs to be stored with the processes (depends on #161), we'd need it though for processes and so we could also add it to collections for consistency.

m-mohr added a commit that referenced this issue Jan 17, 2020
This was referenced Jan 20, 2020
@m-mohr m-mohr added the has PR label Jan 20, 2020
@m-mohr m-mohr modified the milestones: v1.0-rc1, future Jan 20, 2020
@m-mohr m-mohr changed the title Pagination and searching for jobs, services, files, process_graphs Search/Sort/Order for jobs, services, files, process_graphs Jul 20, 2020
@m-mohr
Copy link
Member Author

m-mohr commented Jul 20, 2020

Pagination is solved in 1.0, but there's still room for adding sort/order/searching. We should closely follow STAC and OGC's CQL.

@m-mohr m-mohr added minor requires a minor-version (x.1.0 for example) and removed standalone labels Jul 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
job management incl. /result minor requires a minor-version (x.1.0 for example) process graph management service management user management incl. authorization, account management and billing
Projects
None yet
Development

No branches or pull requests

1 participant