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]
