0.60

ReferenceEnterpriseUsersEnterprise

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

  1. Run the “Register user” command, or click in the Users toolbar.
  2. Enter the First name, Last name, Username, and Password.
  3. Select a Role.
  4. Click Register.

Give the username and password to the person. They can log in at once.

Change a role

  1. In the Users toolbar, right-click the user and select Change role.
  2. 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

  1. In the Users toolbar, select one or more users.
  2. 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:

Enterprise
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
)

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 --username and --password if 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.

Resources Owner Engineer Operator Driver Viewer
Channels All All Read Read Read
Ranges All All All All Read
Live data All All All Read and write Read
Drivers All All Read Read and change Read
Devices, tasks, Arc automations, and statuses All All Read All Read
Projects, visualizations, labels, and aliases All All Read None Read
Users and roles All Read Read None Read
  • 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.