oxidecomputer / oxidecomputer/omicron

Filtering for list endpoints

Open
#507 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

api
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

We will need to able to filter list endpoints. Presumably, because these are GET endpoints, we will do this filtering through query parameters.

Example table design with filtering (Figma) image

It seems to me we will want something like the following in Nexus:

  • For each paginated endpoint, specify the fields clients can filter on and their schemas
  • Expose the above specifications in the OpenAPI spec as query parameters so clients know how to use them
Corners to cut
  • Start with only name and timestamp fields
Open questions
  • How do we do text matching on names
    • Presumably we want to keep it simple and start with something like WHERE name ILIKE '<query>%' and worry about getting fancy later

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by locating the paginated GET endpoints and the code that generates the OpenAPI spec; review how endpoint fields and query parameters are currently described. Done means name and timestamp filters are specified for each paginated endpoint and exposed as documented OpenAPI query parameters.

Written by the indexing model from the issue text.

Assessment

Tech stack
openapi, rust
Domain
api, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.