Managing access & roles
Control which records each user of your app can see or change, and understand how roles are implemented in a generated app.
Sign-in tells your app who someone is. Data access rules decide what that person may read or change. In a MeDo app both live in the app's own backend, and you shape them through the conversation.
Ask for the rule you actually want
Describe the restriction in business terms and MeDo implements it in the app's database:
Be explicit about the exception cases too — "a customer must not see other customers' phone numbers" is a rule worth stating, because it is not implied by "customers see their own orders".
Roles
Roles are part of your app, not a MeDo setting. When you ask for staff, admin, or auditor accounts, MeDo creates the role in your app's data model and applies it in the app's screens and rules. That is why two apps can have completely different role names.
Because roles live in your app:
- You change them by asking in the conversation, not in a settings panel.
- They are exported with your project if you download the source.
- There is no roles or permissions panel in MeDo to configure them from.
Verify the rules yourself
Rules that are never tested tend to be wrong. After asking for a restriction:
- Register two test accounts in your published app.
- Create a record with the first account.
- Sign in as the second account and confirm the record is not visible.
- Try the action you forbade — deleting, editing, viewing a hidden field — and confirm it is refused.
Do this before real customers arrive. Testing with AI Quality Analysis checks functional flows, but it signs in as one user only, so multi-role restrictions are not covered by it — you have to check those by hand.
Where the rules live
Your app's access rules and roles are stored in its database alongside the tables. You can see the tables and the users they apply to in the Backend view of the editor (see App data & forms), and the rules are included in supabase/schema.sql when you download your project. See Backend settings & keep-alive and Exporting & self-hosting.