Implement Phase 6: automated bank sync (Plaid + SimpleFIN) & settings
Add automated transaction syncing via Plaid and SimpleFIN providers, a Settings page for managing connections and account mappings, background scheduled syncing, and sync history logging. New backend: BankSync plugin project with PlaidSyncProvider and SimpleFinSyncProvider, SyncConnection/LinkedAccount/SyncLog models, AES-256 encryption service, BankSyncService orchestration, BankSyncBackgroundService (15-min tick), and BankSyncController (13 endpoints). EF migration creates sync_connections, linked_accounts, and sync_logs tables. New frontend: Settings view with 3 tabs (Profile, Bank Connections, Sync History), bankSync API service, BankSyncComplete SignalR notifications, and Settings nav item in sidebar + avatar dropdown. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,7 @@ using Purrse.Api.Services;
|
||||
using Purrse.Core.Interfaces.Services;
|
||||
using Purrse.Data;
|
||||
using Purrse.Plugins.Abstractions;
|
||||
using Purrse.Plugins.BankSync;
|
||||
using Purrse.Plugins.CSV;
|
||||
using Purrse.Plugins.OFX;
|
||||
using Purrse.Plugins.QIF;
|
||||
@@ -76,18 +77,25 @@ builder.Services.AddScoped<ILoanService, LoanService>();
|
||||
builder.Services.AddScoped<IDashboardService, DashboardService>();
|
||||
builder.Services.AddScoped<IReportService, ReportService>();
|
||||
builder.Services.AddScoped<IDuplicateDetectionService, DuplicateDetectionService>();
|
||||
builder.Services.AddScoped<IEncryptionService, EncryptionService>();
|
||||
builder.Services.AddScoped<IBankSyncService, BankSyncService>();
|
||||
|
||||
// Built-in file parsers
|
||||
builder.Services.AddSingleton<IFileParser, OFXParserPlugin>();
|
||||
builder.Services.AddSingleton<IFileParser, CSVParserPlugin>();
|
||||
builder.Services.AddSingleton<IFileParser, QIFParserPlugin>();
|
||||
|
||||
// Bank sync providers
|
||||
builder.Services.AddSingleton<PlaidSyncProvider>();
|
||||
builder.Services.AddHttpClient<SimpleFinSyncProvider>();
|
||||
|
||||
// Plugin system
|
||||
builder.Services.AddSingleton<PluginService>();
|
||||
|
||||
// Background services
|
||||
builder.Services.AddHostedService<ScheduledTransactionProcessor>();
|
||||
builder.Services.AddHostedService<FileWatcherService>();
|
||||
builder.Services.AddHostedService<BankSyncBackgroundService>();
|
||||
|
||||
// SignalR
|
||||
builder.Services.AddSignalR();
|
||||
|
||||
Reference in New Issue
Block a user