Admin app visibility
Which roles see which screens, and what the screen hides once it is open.
The admin app has five roles and eight screens. A role sees a screen in full, sees it with some fields hidden, or does not see it in the navigation at all. The rules below are the source for the navigation, the route guard, and the API filters, so all three agree.
Assumptions
The five roles
Each user holds exactly one role per workspace. A user who belongs to several workspaces can hold a different role in each.
Roles against screens
The grid is the contract. Full means the screen is in the navigation and every field is visible. Masked means the screen is visible and some fields are hidden (the next table lists them). — means the screen is not in the navigation and a direct URL returns a 403.
| Role / Screen | Dashboard | Customers | Orders | Billing | Users & Roles | Audit Log | Settings | Integrations |
|---|---|---|---|---|---|---|---|---|
| Owner | Full | Full | Full | Full | Full | Full | Full | Full |
| Admin | Full | Full | Full | Masked | Full | Full | Full | Full |
| Support | Full | Masked | Masked | — | — | — | — | — |
| Finance | Full | — | Masked | Full | — | — | — | — |
| Auditor | Full | — | — | — | Read | Full | Read | — |
Read on the Auditor row means the screen is visible in full but every action is disabled. That is a write restriction, not a visibility one, and it is listed here because the navigation shows the same screen to Auditor and Owner.
What a masked screen hides
A masked cell in the grid hides specific fields; the rest of the screen is unchanged. The API strips the fields before the response leaves the server, so the client never receives them.
Hidden fields per masked cell
| Role | Screen | Hidden fields | Reason |
|---|---|---|---|
| Admin | Billing | Card number, bank account, tax ID | Payment credentials stay with the Owner |
| Support | Customers | Email, phone, postal address | Support works from the customer ID and case history |
| Support | Orders | Unit price, discount, margin | Pricing is a Finance concern |
| Finance | Orders | Customer name, shipping address | Finance reconciles by order ID and amount |
How the app decides
A screen is shown only when three gates all pass. The gates are checked in this order, and the first failure decides the outcome.
Effective visibility of one screen
A failed membership check redirects to the workspace picker. A failed role or flag check hides the entry and returns 403 on a direct URL. The Dashboard has no flag and every role sees it, so a signed-in member always lands on one screen.