Users
Register users, give each one a role, and remove them. Includes the permissions of each role.
Each person who uses a Synnax Core logs in as a user. Each user holds one role, and the role sets what the user can see and change. Only users with the Owner role can register, change, or delete users.
Owners manage users in the Users toolbar. To open it, click in the left navigation bar, or press U. Synnax Desktop has one user and no Users toolbar.
Register a user
- Run the “Register user” command, or click in the Users toolbar.
- Enter the First name, Last name, Username, and Password.
- Select a Role.
- Click Register.
Give the username and password to the person. They can log in at once.
Change a role
- In the Users toolbar, right-click the user and select Change role.
- Select a Role, then click Assign.
The new role replaces the user’s role. You cannot change your own role or the role of the root user.
Change a username
In the Users toolbar, right-click the user and select Change username. You cannot change your own username.
Delete users
- In the Users toolbar, select one or more users.
- Right-click and select Delete, then click Delete to confirm.
The root user cannot be deleted. Deleting a user ends all of that user’s sessions at once.
Change a password
The Console has no password setting. A user can change their own password with the TypeScript client:
await client.auth.changePassword("new-password");A password change ends the user’s other sessions. The session that changed the password stays open. A password cannot be empty, and it has no maximum length.
An Owner cannot set the password of another user. To reset a forgotten password, delete the user and register them again.
Manage users from code
Create a user with a role:
Python
TypeScript
engineer = next(r for r in client.access.roles.retrieve() if r.name == "Engineer")
user = client.users.create(
username="jdoe", password="secret", name="Jane Doe", role=engineer.key
)const roles = await client.access.roles.retrieve({});
const engineer = roles.find((r) => r.name === "Engineer");
const user = await client.users.create({
username: "jdoe",
password: "secret",
name: "Jane Doe",
role: engineer.key,
});To give users a different role, call client.users.set_role(keys, role) in Python or
client.users.setRole(keys, role) in TypeScript. The new role replaces the role of each
user. To delete users, call client.users.delete with their keys.
You cannot delete a role that a user holds. First give its users a different role.
The root user
A Core starts with one root user, synnax with the password seldon by default. The
root user always has the Owner role. At each start, the Core:
- Creates the root user from
--usernameand--passwordif no user has that username. If a user has it, the Core makes that user the root user with the Owner role. - Sets the root password back to
--password. A changed root password lasts only until the next start.
When you start the Core with a different --username, the previous root user stops
being root but keeps the Owner role and its password. To remove it, delete it.
Do not change the username of the root user. At the next start, the Core creates a new root user, and the renamed user keeps the Owner role.
To change the root password for good, or to recover a forgotten one, restart the Core
with a new --password. See the
CLI reference.
Roles
A Core has five roles. All means create, read, change, and delete.
- Owner -> runs the deployment and manages users.
- Engineer -> sets up channels, hardware, automations, and visualizations.
- Operator -> runs tests: writes live data to control hardware, and edits ranges. An Operator cannot create visualizations.
- Driver -> given to each rack, so a Driver logs in as its rack. It can change its rack, but cannot create or delete racks.
- Viewer -> sees everything and changes nothing.
An upgrade from v0.60 or earlier gives each user that held no role a new No access role, which grants no permissions. A user that held several roles keeps the one that grants the most access.