feat(audit): Download CSV button on /admin/audit-log (PMS-455) #320

Merged
YousifShkara merged 1 commit from feat/PMS-455-audit-log-export-button into main 2026-06-23 07:32:08 +02:00
Owner

Wires a "Download CSV" anchor into the Audit Log page's PageHeader.actions slot. Builds the export URL from the same filter signals the list resource consumes (entity_type / action / user_id / from / to), so what the user sees in the table is what gets downloaded. Uses a real anchor with the download attribute so the browser honours the server's Content-Disposition: attachment; filename="audit-log.csv" and we don't fight the Authorization header on a fetch path (the cookie carries through on same-origin navigations to the API origin via the existing CORS posture).

Companion to the mokosh-server PR feat/PMS-455-audit-log-csv-export which adds GET /audit-log/export.csv (admin-gated, tenant-scoped, 50k row cap, RFC-4180 CSV). Both must land for the button to work.

#PMS-455

Wires a "Download CSV" anchor into the Audit Log page's `PageHeader.actions` slot. Builds the export URL from the same filter signals the list resource consumes (entity_type / action / user_id / from / to), so what the user sees in the table is what gets downloaded. Uses a real anchor with the `download` attribute so the browser honours the server's `Content-Disposition: attachment; filename="audit-log.csv"` and we don't fight the Authorization header on a fetch path (the cookie carries through on same-origin navigations to the API origin via the existing CORS posture). Companion to the mokosh-server PR `feat/PMS-455-audit-log-csv-export` which adds `GET /audit-log/export.csv` (admin-gated, tenant-scoped, 50k row cap, RFC-4180 CSV). Both must land for the button to work. #PMS-455
feat(audit): Download CSV button on /admin/audit-log (PMS-455)
All checks were successful
Check / fmt + clippy + tests (pull_request) Successful in 1m25s
Create release / Create release from merged PR (pull_request) Has been skipped
22bb8b2fc4
Wires a "Download CSV" anchor into the Audit Log page's `PageHeader.actions` slot. Builds the export URL from the same filter signals the list resource consumes (entity_type / action / user_id / from / to), so what the user sees in the table is what gets downloaded. Uses a real anchor with the `download` attribute so the browser honours the server's `Content-Disposition: attachment; filename="audit-log.csv"` and we don't fight the Authorization header on a fetch path (the cookie carries through on same-origin navigations to the API origin via the existing CORS posture).

Companion to the mokosh-server PR `feat/PMS-455-audit-log-csv-export` which adds `GET /audit-log/export.csv` (admin-gated, tenant-scoped, 50k row cap, RFC-4180 CSV). Both must land for the button to work.

#PMS-455
YousifShkara deleted branch feat/PMS-455-audit-log-export-button 2026-06-23 07:32:08 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!320
No description provided.