Skip to main content
Version: 1.0.4

Users & Roles

Platform users are the people who build and administer the system: engineers, integrators, administrators. They are distinct from runtime users, who operate LiveView screens.

LiveView authentication for runtime identity.

The four roles

RoleIntended for
superadminFull control, including permission and audit configuration
adminDay-to-day administration, without the security-control permissions
editorEngineers who build pipelines, connections, namespace and projects
viewerRead-only access, plus alarm acknowledgement

A role is a default set of permissions, not a hard-coded capability. The mapping is editable — see Permissions.

Default permissions by role

superadmin

Everything. This is the only role that holds, by default:

PermissionWhy it is reserved
Manage permissionsChanges who can call what — the meta-control
Manage the audit journalAudit-storage configuration is itself a security control
Manage sign-in settingsAuthentication policy
Manage AI settingsExposes billable API keys and the assistant kill switch
Manage backupsA backup can move the whole configuration off the machine
Manage LiveView sign-inBinds projects to runtime identity sources
Manage servicesStart and stop services
Manage the script sandboxInstalls Python packages that run with worker authority
Manage the Designer, Manage the libraryAuthoring surfaces
Access settings, Change a user's roleAdministration
Clear execution logs, Clear system logs, View all users' executions, Delete all users' executionsLog destruction
Configure namespace optimisationGlobal runtime tuning

admin

Everything except the list above. Note the deliberate asymmetry: admins can read the audit journal (needs View the audit journal) but cannot configure it (needs Manage the audit journal).

editor

Build permissions, no administration:

AreaPermissions
PipelinesView pipelines, Create pipelines, Edit pipelines, Delete pipelines, Run pipelines, Start and stop pipelines, Export pipelines, Import pipelines, Configure variable storage
ConnectionsView connections, Create connections, Edit connections, Delete connections
NamespaceView the namespace, Create tags and folders, Edit tags and folders, Delete tags and folders, Manage tags, Bind a tag to a protocol, Bulk import tags, Export the namespace, Refresh the namespace
ProjectsView projects, Create projects, Edit projects, Delete projects
AlarmsView alarms, Acknowledge alarms, Manage alarms
DiagnosticsView execution logs, Clear execution logs, View system logs, Clear system logs, View the status panel
AIUse the AI assistant

viewer

Read-only, plus acknowledgement:

View pipelines · View connections · View execution logs · View system logs · View the status panel · View the namespace · Refresh the namespace · View projects · View alarms · Acknowledge alarms

Why a viewer can acknowledge

Acknowledging an alarm is an operator's core duty and changes no configuration. A role that can see alarms but not acknowledge them produces a permanently red banner nobody can clear.

Managing users

Users are managed in Settings → Users.

ActionPermission
List usersManage users
CreateCreate users
Activate / deactivateEdit users
Change roleChange a user's role
DeleteDelete users
Upload / delete avatarauthenticated

Note that Create users, Edit users, Delete users and Change a user's role are separate. A helpdesk role that can deactivate a leaver but cannot grant anyone a role is expressible.

Your own account

Your profile and password are under the user menu — any authenticated user can update their own display name, email, avatar and password.

Passwords

A password change ends every other session New in 1.0.4

Changing a password revokes every token issued before the change, on every device. This is a property of the account, not of the browser that made the change: it applies to a self-service change, an administrative one, and a console reset alike.

Existing sessions survive the upgrade — an account that has never changed its password since revokes nothing.

A lost administrator password

There is no vendor master password and no unlock code. An administrator password is recovered at the server console: New in 1.0.4

qubiq admin reset-password --user jhalloran

It prints a temporary password once, and the account must replace it before it can do anything else. Only admin and superadmin accounts can be reset this way — letting a console foothold reset a named engineer's or operator's account would be a different and less defensible power.

That reset cannot be prevented (whoever ran it already holds the data directory, and therefore every credential in the system), so it is made visible instead: a warn system-log row, an entry in the audit journal, and a security notice at GET /api/security/noticesView the audit journal — that stays for seven days and cannot be dismissed by anybody, including whoever performed the reset.

Console recovery

A password that must be changed

An account handed a password by somebody else owes a change before it can use the system. The rule is enforced by the server, not asked of the browser — the temporary password is read off a console and typed in, and anything that can sign in can call the API directly.

While a change is owed, exactly three endpoints stay reachable: change password, sign out, and read your own profile. Everything else answers 403 with the code PASSWORD_CHANGE_REQUIRED, which is distinct from a 401 on purpose: the account is signed in, and sending it back to the login screen it just came from would be a loop.

Sessions

Sessions are cookie-backed and refresh silently while you work. Login protection is configurable:

VariableMeaning
LOGIN_MAX_ATTEMPTSFailures before lockout
LOGIN_WINDOWWindow in which failures are counted
LOGIN_LOCKOUTHow long a locked account stays locked

Login attempts — successful and failed — are recorded in the audit journal with the client IP, which is why TRUSTED_PROXIES matters behind a reverse proxy.

Deactivating versus deleting

DeactivateDelete
AccessRevoked immediatelyRevoked
Audit historyAttribution preservedHistorical records remain, referencing an absent user
ReversibleYesNo

Deactivate leavers. Deletion is for accounts created in error. Audit records outlive the account, and an attributable name is worth more than a tidy user list.

Practical guidance

  • Create the super admin at first-run setup, then work as an admin or editor day to day.
  • Never share accounts. Attribution is the entire value of the audit journal.
  • Give integrators editor, not admin — building does not require administering.
  • Review the user list at every commissioning milestone and after every contractor leaves.
  • Where the built-in roles do not fit, edit the permission matrix rather than over-granting a role.

Next

Permissions