Summary
GET /admin/forms/:id/submissions returns the raw payload jsonb for each submission. If a form author ever captures sensitive data (medical questions, contact info, etc.), this surfaces unredacted to anyone who can access the form's admin detail page (staff + the form author).
Requirements
Context
Plan 4 review follow-up. Not a v1 blocker; raised because forms are the first artifact where user-submitted payloads bear on this question.
Files
packages/api/src/routes/admin/forms/submissions.ts (JSON list response shape)
packages/api/src/lib/forms/schemaTypes.ts (if adding per-field sensitive marker)
docs/superpowers/specs/2026-05-20-events-announcements-forms-design.md §5
Summary
GET /admin/forms/:id/submissionsreturns the rawpayloadjsonb for each submission. If a form author ever captures sensitive data (medical questions, contact info, etc.), this surfaces unredacted to anyone who can access the form's admin detail page (staff + the form author).Requirements
staff_only_submissionsboolean column onforms(only staff withsystemTier >= 2see payloads when true) OR rely entirely on formscopefor access controlContext
Plan 4 review follow-up. Not a v1 blocker; raised because forms are the first artifact where user-submitted payloads bear on this question.
Files
packages/api/src/routes/admin/forms/submissions.ts(JSON list response shape)packages/api/src/lib/forms/schemaTypes.ts(if adding per-field sensitive marker)docs/superpowers/specs/2026-05-20-events-announcements-forms-design.md§5