Skip to content

feat: PII Export & Delete Workflow — GDPR-ready (#76)#340

Open
lucascrespo23 wants to merge 2 commits intorohitdash08:mainfrom
lucascrespo23:feature/gdpr-export-delete
Open

feat: PII Export & Delete Workflow — GDPR-ready (#76)#340
lucascrespo23 wants to merge 2 commits intorohitdash08:mainfrom
lucascrespo23:feature/gdpr-export-delete

Conversation

@lucascrespo23
Copy link

Summary

Implements GDPR-compliant data export and account deletion (issue #76).

Backend

  • GET /user/export — Downloads all user PII as a ZIP (JSON inside), excluding password hashes
  • DELETE /user — Permanently deletes user account and all associated data (cascade delete)
  • Audit logging for both export and deletion events
  • Redis session invalidation on account deletion

Frontend

  • Updated Account Settings page with:
    • Export My Data button (downloads ZIP)
    • Delete Account button with confirmation dialog (AlertDialog)
  • Proper session cleanup and redirect after deletion

Tests

  • 4 pytest tests covering export (ZIP content validation, auth required) and deletion (cascade delete verification, auth required)
  • All tests pass with fakeredis for CI environments without Redis

Docs

  • README updated with GDPR section documenting both endpoints

Closes #76

Lucas Crespo added 2 commits March 8, 2026 15:58
- Add weekly summary service with totals, daily/category breakdown, trends
- Add GET /weekly-summary endpoint with JWT auth and Redis caching
- Add WeeklyDigest React page at /digest with navigation
- Add nav link in Navbar
- Add backend tests (pytest) and frontend tests (vitest)
- Update README with feature documentation
@lucascrespo23
Copy link
Author

Hi @rohitdash08 👋 Just following up on this PR — let me know if there are any changes needed. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PII Export & Delete Workflow (GDPR-ready)

1 participant