Problem
GET /api/push returns full push records for every row in the page — including all PushStep content fields (diffs, scan output, blocked patterns). At 25 records this produces a ~3MB response, with 600ms–1.2s spent on content download alone in the browser.
The individual push detail page (GET /api/push/{id}) is already fast — the payload size problem is specific to the list view.
Proposed fix
Add a dedicated summary projection for the list endpoint. Each row only needs:
status — FORWARDED / APPROVED / REJECTED
url — full upstream repo URL (e.g. https://github.com/RBC/git-proxy-java.git)
ref — refs/heads/... or refs/tags/...
commitSha
authorName / committerName
identityResolved — boolean (drives the green/yellow badge)
timestamp
All PushStep fields (including content, logs, errorMessage) should be omitted from the list response entirely. Full step detail remains available on GET /api/push/{id}.
Expected outcome
Push list response drops from ~3MB to a few KB, eliminating the content download bottleneck. List load time should come in well under 500ms total.
Problem
GET /api/pushreturns full push records for every row in the page — including allPushStepcontent fields (diffs, scan output, blocked patterns). At 25 records this produces a ~3MB response, with 600ms–1.2s spent on content download alone in the browser.The individual push detail page (
GET /api/push/{id}) is already fast — the payload size problem is specific to the list view.Proposed fix
Add a dedicated summary projection for the list endpoint. Each row only needs:
status— FORWARDED / APPROVED / REJECTEDurl— full upstream repo URL (e.g.https://github.com/RBC/git-proxy-java.git)ref—refs/heads/...orrefs/tags/...commitShaauthorName/committerNameidentityResolved— boolean (drives the green/yellow badge)timestampAll
PushStepfields (includingcontent,logs,errorMessage) should be omitted from the list response entirely. Full step detail remains available onGET /api/push/{id}.Expected outcome
Push list response drops from ~3MB to a few KB, eliminating the content download bottleneck. List load time should come in well under 500ms total.