BillTracker/client/components
null d53a64b604 feat(data): "Erase my data" danger zone (Batch 5)
New services/userDataService.js eraseUserData() permanently wipes a user's
financial + imported data in one transaction (child → parent order for FK
safety): bills (+ cascading payments/monthly_bill_state/bill_history_ranges),
transactions/accounts/data_sources, categories/groups, templates, snowball,
spending rules/budgets, merchant rules, imports, and per-user hint tables. It
PRESERVES the account, sessions, 2FA/WebAuthn, login history and preferences —
this resets your data, not your account — then re-seeds default categories and
writes an audit row to import_history.

- POST /api/user/erase-data — rate-limited (demoDataLimiter), requires a
  type-to-confirm token ("ERASE"), structured errors.
- UI: EraseDataSection danger-zone card (Export & backups pane) — red-accented,
  "download a backup first" nudge, type-to-confirm AlertDialog, toasts; on
  success DataPage reloads all state.

Tests: tests/eraseUserData.test.js — wipes user A only, preserves user B +
account + session, re-seeds categories, audited. Server 139 pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:21:07 -05:00
..
admin fix(bank-sync): admin config, matching, and worker updates 2026-06-07 19:41:17 -05:00
data feat(data): "Erase my data" danger zone (Batch 5) 2026-07-03 15:21:07 -05:00
layout feat(nav): surface Data in the primary app menu (IMP-IA-01) 2026-07-03 12:50:07 -05:00
snowball refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
tracker feat(cashflow): safe-to-spend projection with timeline, vitest setup, package upgrades 2026-06-12 01:32:28 -05:00
transactions refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
ui feat(settings): auto-save preferences with live save status (batch 0.39.0) 2026-06-12 02:08:42 -05:00
BillHistoricalImportDialog.jsx fix: historical import loading state, remove stray catalog export 2026-06-06 23:17:08 -05:00
BillMerchantRules.jsx refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
BillModal.jsx refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
BillRulesManager.jsx feat: bill rules manager page, merchant re-normalization, match suggestion scoring fix, cleanup pruning 2026-06-04 20:45:11 -05:00
BillsTableInner.jsx refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
CalendarFeedManager.jsx fix(ui): calendar settings improvements 2026-06-07 16:52:50 -05:00
CommandPalette.jsx feat(data): actionable badges, health dots, at-a-glance stats, palette links (Batch 2) 2026-07-03 15:05:25 -05:00
ErrorBoundary.jsx v0.19.2: add React Error Boundaries for crash recovery 2026-05-09 18:33:02 -05:00
IncomeBreakdownModal.jsx refactor(client): single source of truth for money formatting (IMP-CODE-01) 2026-07-03 12:46:22 -05:00
MarkdownText.jsx initial commit 2026-05-03 19:51:57 -05:00
MobileBillRow.jsx feat: live transaction search in merchant rules, link-import preference toggle, tracker row tweaks 2026-06-06 23:04:53 -05:00
MobileTrackerRow.jsx fix(utils): extract localDateString to shared lib, replace .toISOString().slice() pattern across client 2026-06-11 23:40:22 -05:00
PageLoader.jsx v0.20.1: code splitting, version badge on roadmap, roadmap nav link 2026-05-09 22:01:19 -05:00
PageTransition.jsx chore(client): update PageTransition spacing 2026-06-09 20:51:32 -05:00
RecentlyDeletedBillsDialog.jsx feat(bills): "Recently deleted" restore view for the 30-day window (IMP-UX-01) 2026-07-03 12:56:45 -05:00
ReleaseNotesDialog.jsx 0.34.3 2026-05-31 15:06:10 -05:00
SearchFilterPanel.jsx fix(tracker): search filter and bucket improvements 2026-06-07 17:33:31 -05:00
StatusBadge.jsx style: stronger late/missed payment visibility 2026-05-28 23:42:46 -05:00
SubscriptionCatalogSection.jsx feat: dedicated subscription catalog page, evidence badges, price display in recommendations 2026-06-06 20:44:54 -05:00
SummaryCard.jsx style: global readability/theme pass 2026-05-28 23:18:14 -05:00