One user owns many projects; every project endpoint is authorized. Closes the current open-data security hole.
Tracks (9):
- #54 — AuthZ: enforce project ownership on every /api/sites/{siteId}/* route
- #55 — Data model: User → Projects (memberships) in DynamoDB
- #56 — Projects: list projects for the logged-in user (scoped)
- #57 — Projects: create project tied to the user (owner membership)
- #58 — Projects: delete project (+ purge all data) with confirmation
- #59 — Projects: members & roles (owner/admin/editor/viewer) enforced
- #60 — Projects: invitations (invite by email, accept flow)
- #61 — Projects: user-scoped project switcher (SiteSelector rework)
- #62 — Accounts: plan/quota scaffolding per account (events/mo, projects, retention) [stretch]
Part of the Fathom + Sentry product backlog. See #44 for the original roadmap.