Phase 3: CSV Import #45
Labels
No Label
architecture
backend
bug
feature
frontend
priority:critical
priority:high
priority:low
priority:medium
priority:nice-to-have
ux
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/BillTracker#45
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Let users import transaction data from CSV files. Imported transactions go into the shared
transactionstable from Phase 2.Depends on: Phase 2 (#44) — needs data_sources, financial_accounts, transactions tables
Blocks: Phase 4 (#46) (matching needs imported transactions)
Parent: #42
Scope
Implement
Do NOT implement
Backend API
POST /api/import/csv/preview— parse CSV, return headers, sample rows, suggested mapping, validation issues. No writes.POST /api/import/csv/commit— commit withimport_session_id+mapping, insert intotransactionstable, skip duplicates, return{imported, skipped, failed, details}GET /api/import/history— list last 100 importsAll endpoints gated by
DATA_IMPORT_ENABLEDenv var (defaults to true, returns 403 when false).Dedupe Strategy
provider_transaction_idwithcsv:id:prefixposted_date + amount + description + payee + account_namestored ascsv:hash:prefixedprovider_transaction_idFrontend
DataPage.jsx→ Import Transaction CSV section:Acceptance Criteria
Previous → Phase 2 (#44)
Next → Phase 4 (#46)