Web UI

Accounts and permissions

Give each person an account and the tenant permissions their work requires. Reading job content is a separate permission.

For: People using the web UI.

Give each person an account and the tenant permissions their work requires. Reading job content is a separate permission.

Accounts and roles

Terminal
oz0 user add kim --role member         # prints a generated password, once
oz0 user grant kim --role operator     # kim's role in the default tenant
oz0 user grant kim --role reader --tenant acme --content
oz0 user add sam --role admin --password-stdin < password.txt
oz0 user list
oz0 user revoke kim --tenant acme
oz0 user password kim                  # a new password; signs kim out everywhere
oz0 user remove kim

An account has a role in each tenant it is a member of. Each role can do what the ones before it can:

RoleMay
readerLook: nodes, agents, plugins, jobs and their steps, queues, errors, insights, cost, findings; export a job's shape
operatorAlso start, cancel and tag jobs, and decide approvals
adminAlso change the tenant: nodes and rollouts, plugins, secrets, join tokens, the budget; and read its audit log
ownerAlso decide who is a member, under Access, People, or with user grant
auditorLook, and read the audit log, evidence, retention and governance; change nothing
privacy-officerLook, and find and erase data subjects and place legal holds; start no job
agent-userUse the agents its membership grants in the chat drawer, and see only its own chats and jobs

Each role is a set of permissions, and a membership may hold several roles; a server can add a role set's roles to these. Access, Roles lists the roles in force with their permissions, read-only; the role pickers under Access offer them. The web UI shows what the account's permissions allow (from /api/auth/me) and the API decides. An agent user lands in its chats and sees nothing else of the tenant. See Roles and permissions.

Seeing what jobs read and wrote, such as prompts, answers, tool arguments and results, and each step's input and output, is a permission of its own. Operators, admins and owners have it unless an owner takes it away (--content=false), and readers do not unless an owner gives it (--content). Without it, the job page shows the shape of each job: which tools it called and when, its steps and their cost, but not their content.

The account itself has a cluster role: admin (the owner of every tenant, who also adds tenants and accounts), reader (reads every tenant) or member (only its tenants). server init and dev mode create one admin. Everyone with a password can change it under Settings.

  • Sessions last seven days and end when the password changes. Access and oz0 user sessions list them; see Sign-in. Five wrong passwords for one name from one address within 15 minutes cost a minute's wait.
  • The session cookie only works for requests from the app itself: other sites cannot use it, and the app loads nothing from anywhere else, so it works without internet access.
  • The CLI keeps using its operator certificate; accounts are for people in a browser.

For lists across tenants, use All tenants.

Back to Web UI.

On this page
Copyright © 2026