All policies

Security

Last updated 10-29-2026

Security is designed into how cookingplan.app stores and changes data, not added afterward.

Accounts and sessions

  • Passwords are hashed with Argon2id. We never store or log the password itself.
  • Sign-in uses equal-time checks so the login form doesn't reveal which emails have accounts, and sign-in attempts are rate-limited.
  • Sessions are server-side and revocable: the HttpOnly session cookie only names a session record that is checked on every request, so logging out, password changes and removal from a household take effect immediately.

Household isolation

  • Every operation is authorized on the server against your household membership and role (owner or editor).
  • As defense in depth, Postgres row-level security restricts every household-owned table to the current household. The application connects as a non-owner database role, so these policies apply to it and cannot be bypassed by application code.
  • Platform operators do not have default access to private household content.

Correct stock records

  • Inventory changes are recorded in an append-only ledger. Balances cannot go negative; discrepancies require a correction with a reason.
  • Confirming a purchase and marking a meal cooked are idempotent: a retried or double-tapped request is applied exactly once.
  • Undo creates a single compensating entry rather than erasing history.

Uploads and AI

  • Uploaded images are type- and size-checked, decoded, re-encoded (stripping metadata) and stored privately.
  • Recipe text and photos are treated as untrusted data. The AI import has no tools, no secrets and no access to household data; its output is schema-validated and saved only as a draft for a person to review.

Operations

  • Secrets are kept server-side and out of source control.
  • Billing entitlements change only from verified, de-duplicated provider events.
  • Private content is kept out of application logs.
  • Backups are taken regularly and restore procedures are tested.

Responsible disclosure

If you believe you have found a vulnerability, email [email protected] with steps to reproduce. Please don't access other households' data, degrade the Service, or publicly disclose the issue before we have had a reasonable time to fix it. We will acknowledge reports, keep you informed, and will not pursue legal action against good-faith research that follows these guidelines.

All policiesNext: Incident Response