Roles and access control
Roles (for example trainer vs member) are the audience you assign when you invite someone or use Preview as. What they can actually do is a set of capabilities (for example see invoices, refund a payment). Access is enforced by GenieForge, not only by what the screen shows. Name audiences as soon as they differ: who submits, who approves, who sees everyone’s data. Describe that outcome; GenieForge creates and wires roles before you invite real users. The same role name can mean different access in two projects of the same app. Clinic B can give receptionists invoice read access without changing Clinic A, and without creating a second receptionist role. Manage roles under App Blueprint → Roles. Builders invite from project End-Users. Workspace owners invite and change roles from portal People.How to verify
- Confirm roles under App Blueprint → Roles.
- Open App Blueprint → Access: findings, per-role explorer, and roles-by-resource matrix.
- Preview as each role. Try a path that should fail (for example a requester opening the dispatcher queue).
- After permission changes, Preview again. Preview as Owner (or Admin) can hide a member-only page. That is expected when you left them off the list. Builder Chat still sees every page. Shared app access (who can see a table, named extras like refund) applies in Preview and the live portal after you publish. Extra access you add for one project applies immediately.
Limits and notes
A path that works when you test as a builder can still fail in Preview as a customer role until that role’s access matches.
What good looks like
- Requesters create requests and see only their own. Dispatchers see all open requests and can assign and complete. Clients never appear in that app.
- The coach role may open the roster and assign sessions. Members may only open My plan and the check-in.

