KYLE LifeOSPersonal life operating system

Information Security Policy

Last updated August 6, 2026 · Reviewed at least every 6 months

Scope

KYLE LifeOS is a single-user personal finance and life-tracking application operated by one individual for their own use. It is not offered to other users; the only person whose data is processed is the operator, who is the account holder of every connected financial institution. This policy documents the operationalized security controls protecting that data, including financial data retrieved via Plaid. The operator is solely responsible for information security and can be reached at support@kyleneumeier.com.

Identity & access management

Application access requires authentication via Supabase magic-link or passkey plus a time-based one-time-password (TOTP) second factor, restricted to a single hard-allowlisted email address. Every API route verifies the server-side session before executing. Database access is server-side only; row-level security is enabled on every table with no policies (deny-all at the API boundary). Administrative accounts (GitHub, Vercel, Supabase, Plaid) require two-factor authentication, and access follows least-privilege.

Encryption

All traffic is served over HTTPS/TLS 1.2+. Plaid access tokens are encrypted at rest with AES-256-GCM using a key held as an environment secret, never in the database; the underlying PostgreSQL database is additionally encrypted at rest by Supabase.

Infrastructure & network security

Hosting on Vercel; database, authentication, and storage on Supabase. Plaid webhooks are verified using Plaid's signed Plaid-Verification JWT (ES256 signature, request-body hash match, and a 5-minute freshness window); scheduled jobs are gated by a bearer secret. Secrets live in environment configuration, never in source control.

Vulnerability & dependency management

Dependencies are monitored by GitHub Dependabot security alerts and automated security-update pull requests, with weekly version-update checks. The application is written in TypeScript (strict mode) and linted on every build; all input boundaries are validated with Zod.

Data retention & deletion

Data is retained while the operator uses the application. A connected institution can be disconnected at any time, which removes the Item at Plaid and stops further retrieval. Because the operator controls the database directly, any stored data can be permanently deleted on request. This policy is reviewed at the cadence noted above.

Incident response

On a suspected compromise the operator rotates affected secrets (encryption key, Plaid/Supabase keys), revokes and re-links affected Plaid Items, and assesses exposure. Plaid is notified of any incident affecting Plaid-provided data as required.

Contact

Security questions or reports can be sent to support@kyleneumeier.com.