Store abstraction
The application depends on aStore interface. Device builds use Drift over
SQLCipher. Web and tests can use memory-backed implementations.
SQLCipher open sequence
- Load the SQLCipher dynamic library.
- Read or create a random database key in platform secure storage.
- Apply
PRAGMA keybefore reading schema content. - Verify the loaded engine exposes SQLCipher support.
- Refuse to open if only plaintext SQLite is available.
- Run Drift migrations and startup checks.
Main record families
- accounts/wallets and balances;
- transactions, transfer pairs, splits, labels, attachments, and source evidence;
- categories and ordering;
- budgets and rollover;
- goals;
- recurring and one-time scheduled payments;
- seettu circles, members, cycles, payments, winners, and bids;
- merchant/categorization/ignore rules and corpus metadata;
- unmatched bank-message evidence; and
- financial and device-local preferences.
