Security

Summary. The app never sees a bank username or password. Plaid and SimpleFIN Bridge hold those; the app only ever holds a read-oriented access token issued by them. Sign-in is Google OAuth, and only one email address is allowed through.

1. Bank credentials are never handled by this app

This is the important one, and it is true of both aggregators:

Both integrations are read-only in practice: the app calls only data-retrieval endpoints (/accounts/get, /transactions/sync, /investments/holdings/get, /investments/transactions/get at Plaid; /accounts at SimpleFIN). It has no ability to move money, initiate payments, or modify anything at a financial institution. The Plaid products requested are transactions and investments; no payment, transfer, or auth product is requested.

2. How tokens are stored

3. Authentication and access control

4. Webhooks

Plaid webhooks are accepted at a single endpoint and rejected unless the request carries the correct shared token, which is stored as a Cloudflare secret.

5. Data retention and destruction

Deleted receipts are soft-deleted, then permanently destroyed — database row and R2 object both — by a scheduled job that runs daily at 05:00 UTC on anything soft-deleted more than 30 days earlier. Each purge run is written to the app's audit log.

6. What is deliberately not claimed

No security certification is claimed. There is no SOC 2 report, no ISO 27001 certification, and no third-party penetration test. This is a personal application run by one person, documented honestly.

7. Reporting a vulnerability

If you believe you have found a vulnerability in this app or this site, email rolotrealanis@gmail.com before disclosing it publicly. There is no bug bounty, but reports are taken seriously and acknowledged.