You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

2.7 KiB

Tasks: 009-fmv-plaid-drilldown

Branch: 009-fmv-plaid-drilldown | Date: 2026-03-22

Phase 1: Setup

  • T-001: Create .gitignore / .dockerignore verification [P]
  • T-002: Add Plaid env vars to environment interface and configuration service (ENABLE_FEATURE_PLAID, PLAID_CLIENT_ID, PLAID_SECRET, PLAID_ENV, PLAID_ENCRYPTION_KEY)

Phase 2: US1 — Restore Admin-Gated Features (P1)

  • T-010: Move legacy menu items out of admin gate in header desktop nav
  • T-011: Move legacy menu items out of admin gate in header mobile nav
  • T-012: Add "Analysis" nav menu group for legacy items (desktop)
  • T-013: Add "Analysis" nav menu group for legacy items (mobile)

Phase 3: US2 — FMV Dashboard (P1)

  • T-020: Create FMV dashboard page component and route
  • T-021: Implement FMV hero total display
  • T-022: Implement account cards with value, allocation, platform
  • T-023: Add FMV nav menu group to header (desktop + mobile)
  • T-024: Handle empty state and excluded accounts

Phase 4: US3 — Asset Drill-Down (P1)

  • T-030: Wire FMV account cards to existing account-detail-dialog
  • T-031: Verify holdings tab shows cost basis, value, gain/loss per holding

Phase 5: US4 — Plaid Account Linking (P2)

  • T-040: Add PlaidItem model to Prisma schema + Account extensions
  • T-041: Run Prisma migration
  • T-042: Add PlaidItem shared interface in @ghostfolio/common
  • T-043: Install plaid npm package + @plaid/link-initialize
  • T-044: Create PlaidModule (module, controller, service) in API
  • T-045: Implement encryption service for access tokens
  • T-046: Implement link-token creation endpoint
  • T-047: Implement exchange-token endpoint (create PlaidItem + Accounts)
  • T-048: Implement initial holdings sync on account creation
  • T-049: Create Angular PlaidLinkService wrapping @plaid/link-initialize
  • T-050: Add "Link Account via Plaid" button to FMV dashboard
  • T-051: Implement Plaid items list endpoint
  • T-052: Add Plaid status indicators to FMV account cards
  • T-053: Implement re-auth (update mode) link-token endpoint
  • T-054: Implement delete/disconnect PlaidItem endpoint

Phase 6: US5 — Plaid Ongoing Sync (P3)

  • T-060: Add PLAID_SYNC_QUEUE constant to config.ts
  • T-061: Create PlaidSyncModule (module, processor, service)
  • T-062: Implement sync processor (fetch holdings + transactions, create Orders)
  • T-063: Add manual sync trigger endpoint
  • T-064: Add cron job for daily Plaid sync
  • T-065: Implement webhook receiver endpoint
  • T-066: Add "Refresh" button and last-synced indicator to UI
  • T-067: Register PlaidModule and PlaidSyncModule in app.module.ts