Skip to content

feat(requests): paginate the request list #48

Description

@Fluory

Ziel

The request list (/requests, #26 / PR #43) stays fast and readable with thousands of requests per company. Today it loads every matching request at once.

Akzeptanzkriterien

  • The list shows a fixed page size (e.g. 50) with next/previous navigation; filters (status, possible duplicate) survive paging.
  • Paging is stable while new requests arrive (keyset on created_at, id, not OFFSET).
  • Page parameters from the query string are validated (allow-list / bounds); invalid values fall back to the first page.
  • Export records and retry info are loaded only for the requests on the current page (no N+1, no full scan).
  • Tenant isolation unchanged: only the session's company, via withTenant.

Nicht Teil dieser Aufgabe

  • Full-text search, sorting by other columns.

Betroffene Bereiche

  • src/features/requests/repository.ts (listRequests), src/features/export/repository.ts (listExportRecords), src/app/requests/page.tsx

Testplan

Kriterium Prüfart
Page size + navigation + filters integration test
Stable keyset paging with inserts between pages integration test
Invalid page params unit test
Other company's requests never appear integration test (two tenants)

Offene Entscheidungen

  • Page size; whether a total count is needed (costs a COUNT per page view).

Security/Privacy betroffen?

Nein (query parameters validated; tenant isolation unchanged).

Found in the review of PR #43.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

featureNew capabilityreadyDefinition of Ready met – may be claimed

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions