API changelog
Notable and breaking changes to the FlimsyMail Developer API. Current surface is /api/v1.
- v1.1
Webhooks, storage, and auth
- `inbox.expired` is emitted when cleanup removes a private inbox past `expires_at`.
- Optional Cloudflare R2 storage for raw `.eml` (`raw_r2_key` on messages; bodies remain in Neon).
- Optional Upstash QStash for near-real-time webhook delivery (falls back to Vercel Cron).
- Google OAuth sign-in alongside GitHub and magic link.
- Self-serve paid checkout stays off until `PAID_PLANS_ENABLED=true`.
- v1.0
Developer API launch
- REST v1: inboxes, messages, OTP extraction, verification links, API keys, webhooks, teams, domains.
- Auth: Bearer API keys (`fm_live_…`) and inbox access tokens.
- Webhook events: `inbox.created`, `message.received`, `message.deleted`, `webhook.test`.
- OpenAPI 3.1 at `/openapi.yaml`.