Fix/83 data deletion completeness#104
Open
Zeemnew wants to merge 2 commits into
Open
Conversation
Block success screen when no real activeTrade exists, fetch trade detail from GET /trades/:id for receipt data, source agent name from seller_username instead of hardcoded values, label mock hashes as "Testnet · Simulado", and prevent success navigation on completeTrade failure. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@Zeemnew Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR addresses and fully completes Issue #83: Data deletion completeness and PII minimization.
It implements a robust, compliant account deletion flow that cascades across all relational and planned database tables, balancing strict user data privacy (GDPR/ARCO/mobile store submission compliance) with financial audit-trail and blockchain protocol integrity.
Closes #83
Key Changes
1. Cascading Data Deletion & Anonymization Policy
Refactored
deleteAccountinaccount.service.tsto perform complete data scrub and minimization:userstable): Sets primary identifiers (username,stellar_address,phone_hash) toNULLand populates backup columns (deleted_*) with scrambled, non-identifiable representation hashes (deleted_1234abcd,GABC...WXYZ) rather than cleartext PII.walletstable): Fully deletes the linked user wallet.user_devicestable): Removes registered FCM tokens completely to cease all messages.chat_messagestable): Deletes all trade-associated chat messages sent by the user.dispute_eventstable): Removes user-uploaded evidence URLs and anonymizes dispute reason descriptions.secret_access_log&account_funding_logtable): Zeroes out client IP addresses (0.0.0.0), clears User Agent signatures, and masks funding addresses.tradestable): Intact and untouched for accounting integrity, referencing only the already-anonymized user row.2. Local Fallback Database Improvements (
db/schema.ts)Updated the in-memory fallback engine to fully support local development, testing, and CI pipelines without needing a live Postgres instance:
DELETEquery support insidememQuery.TRUE/FALSE) to match standard SQL cast behavior.3. Frontend Privacy Copy
Privacy.tsx) to precisely articulate the new deletion and data-minimization lifecycle to end-users.4. Test Suite & Integration
accountDeletion.test.tsto perform complete data lifecycle testing (inserts mock users, wallets, FCM tokens, chat history, disputes, access logs, and completed trades, and asserts PII is completely wiped out/minimized post-deletion).npm testscript in backendpackage.jsonfor easy local/CI test orchestration.Verification
Run tests locally to verify passing test assertions: