Privacy & Data Handling
FolioOrb is local-first, not cloud-hosted.
| Data | Handling |
|---|---|
| Holdings and portfolio snapshots | Stored in local SQLite under database/ |
| Config and API keys | Stored in local .env; .env is excluded from git |
| Browser cache | Uses localStorage for faster dashboard paint |
| Market data | Requested from Yahoo Finance through yfinance |
| Filings and the yield curve | Requested from SEC EDGAR and the US Treasury — public, keyless sources |
| Claude prompts | Sent to Anthropic only when Claude features are enabled and requested |
| Generated AI summaries | Cached locally in SQLite for reuse and cost control |
Security-oriented defaults
Section titled “Security-oriented defaults”.envanddatabase/are intended to stay untracked by git- CORS defaults to local origins
- API key input is format-validated client-side and server-side before being saved
- Claude is optional; the local engine remains available without an AI provider
What actually leaves your machine
Section titled “What actually leaves your machine”Every outbound call, and nothing else:
- Yahoo Finance — always, for prices, history, and headlines. Required for the dashboard to function.
- US Treasury (
home.treasury.gov) — the daily par yield curve behind the market backdrop. A public file; no key, and nothing about you is sent. - SEC EDGAR (
sec.gov,data.sec.gov) — filings, financial statements, and insider (Form 4) records for the companies you hold. Public record, no key. See the contact-address note below. - Anthropic Claude — only when a key is configured and a Claude-backed feature is requested. No prompt is sent otherwise.
- GitHub (
api.github.com,github.com) — only to check for and download updates.
What every one of these has in common: the request carries a ticker or a date, never your holdings, your share counts, or anything about your positions. There’s no telemetry, no analytics beacon, and no third service in between.
The SEC contact address
Section titled “The SEC contact address”The SEC requires software to identify itself with a contact address, and returns 403 to
anything that doesn’t. FolioOrb sends its maintainer’s address by default, so filings work
out of the box. If you’d rather speak for yourself, set FOLIO_SEC_CONTACT in your .env:
FOLIO_SEC_CONTACT=you@example.comThat address goes to the SEC and nowhere else. It is not a login, and no account is created.