Front-end for the two data-subject rights (async export + hardened erasure).
Scope β src/modules/users/views/user.profile.view.vue (+ small store/api touches if needed)
- Export: "Request my data" β
POST /users/me/data/exports (202) β status list (GET /users/me/data/exports, poll while pending/processing) β "Download" when ready (GET /users/me/data/exports/:id, authenticated blob download). Show expiry.
- Delete account: repoint from
DELETE /users (route removed server-side) to DELETE /users/me/data. Confirm dialog branches by account type: password account β password re-entry field; OAuth-only account β "send confirmation code" flow (short-lived token from the confirm endpoint). Surface the erasure receipt (what was removed / what is retained and why) on success.
- Nudge export-before-erase in the delete dialog (access-before-erasure best practice).
- Optional: export/erasure-rights copy in the legal privacy template (incl. backup-retention window sentence).
DoD
Depends on: export+erasure controller, re-auth hardening, async export pipeline (the backend contract).
Created via /dev:issue Β· contract v2 2026-07-03
Front-end for the two data-subject rights (async export + hardened erasure).
Scope β
src/modules/users/views/user.profile.view.vue(+ small store/api touches if needed)POST /users/me/data/exports(202) β status list (GET /users/me/data/exports, poll while pending/processing) β "Download" when ready (GET /users/me/data/exports/:id, authenticated blob download). Show expiry.DELETE /users(route removed server-side) toDELETE /users/me/data. Confirm dialog branches by account type: password account β password re-entry field; OAuth-only account β "send confirmation code" flow (short-lived token from the confirm endpoint). Surface the erasure receipt (what was removed / what is retained and why) on success.DoD
/verify+ build green./dev:verify-qavisual smoke of both flows against the running Node API (runtime-verify the real contract shape, not a self-authored mock).Depends on: export+erasure controller, re-auth hardening, async export pipeline (the backend contract).
Created via /dev:issue Β· contract v2 2026-07-03