steveahnahn opened a new pull request, #68412:
URL: https://github.com/apache/airflow/pull/68412

   
   Adds server-side pagination to the private UI endpoint behind the pending 
partitioned Dag run modal, and wires the modal table state to `limit` and 
`offset`.
   
   Why:
   - The endpoint materialized every matching `AssetPartitionDagRun` row before 
enrichment.
   - The response `total` was derived from the materialized row list, so the UI 
had no way to page through the full filtered result set.
   - The modal did not pass pagination state to the generated client, so 
opening it for a large partitioned Dag could request and render every pending 
partition.
   
   What changed:
   - Accept standard `limit` and `offset` query parameters on 
`/ui/partitioned_dag_runs`.
   - Use `paginated_select` so the endpoint returns the full filtered `total` 
while enriching only the current page of rows.
   - Preserve the missing-Dag 404 behavior and return an empty page with the 
real total when `offset` is past the end.
   - Keep modal pagination local to the dialog, pass `limit` and `offset` to 
the generated client, and reset the dialog page index on close.
   - Regenerate the private UI OpenAPI client and add backend/UI regression 
coverage.
   
   Validation:
   - Reproduction before fix: applying only the backend regression test to 
`upstream/main` failed because `limit=2` still returned `["key-2", "key-1", 
"key-0"]`.
   - Added backend regression coverage for first page, second page, and empty 
page past the end: 
`TestGetPartitionedDagRuns.test_should_paginate_partitioned_dag_runs`.
   - Added UI coverage in `PartitionScheduleModal.test.tsx` for initial page, 
next page, and close/reset query parameter wiring.
   - Breeze UI smoke against `localhost:28080` with 105 pending partitioned Dag 
runs confirmed the modal requested `limit=50&offset=0`, then 
`limit=50&offset=50`, then `limit=50&offset=100`; the final response contained 
5 rows with `total=105`.
   
   ### Screenshots
   
   _Dags list showing the pending partitioned Dag run count._
   <!-- Attach screenshot: 01-dags-list-pending-count.png -->
   
   _Modal first page, backed by `limit=50&offset=0`._
   <!-- Attach screenshot: 02-modal-page-1-offset-0.png -->
   
   _Modal final page, showing pagination controls and the remaining 5 rows 
backed by `limit=50&offset=100`._
   <!-- Attach screenshot: 03-modal-final-page-offset-100-pagination.png -->
   
   ---
   
   ##### Was generative AI tooling used to co-author this PR?
   
   - [X] Yes - Codex (GPT-5)
   
   Generated-by: Codex (GPT-5) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to