CTRL should support a demo/read-only role that allows users to browse studies, forms, and participants without being able to edit anything.
Public demo site: currently exposes full admin permissions to anyone who logs in with the seed credentials, creating potential for troll/misuse (defacement of study content, offensive form modifications, etc.). A demo mode with read-only permissions would let visitors explore the platform without risk to content integrity.
Options to consider:
- New user role: "demo" role at the study level (finer-grained permission model)
- Deployment-mode flag:
DEMO_MODE=true middleware injection that blocks any write path system-wide (coarser but simpler)
- Hybrid: role-based for normal operation, deployment flag for demo instances
Context
Raised during CTRL team meeting on 9 July 2026 discussing demo site security. Related to the GitOps/deployment work Iggy is scoping (may inform how demo mode is toggled at deployment time).
Related to #697
CTRL should support a demo/read-only role that allows users to browse studies, forms, and participants without being able to edit anything.
Public demo site: currently exposes full admin permissions to anyone who logs in with the seed credentials, creating potential for troll/misuse (defacement of study content, offensive form modifications, etc.). A demo mode with read-only permissions would let visitors explore the platform without risk to content integrity.
Options to consider:
DEMO_MODE=truemiddleware injection that blocks any write path system-wide (coarser but simpler)Context
Raised during CTRL team meeting on 9 July 2026 discussing demo site security. Related to the GitOps/deployment work Iggy is scoping (may inform how demo mode is toggled at deployment time).
Related to #697