Users, teams and access¶
The Users section of the sidebar has two screens: People and Teams.
Accounts¶
An account has a name, a login, an e-mail address and a password. Two switches decide what it may do:
- Active
An inactive account may not sign in and may not write anything.
- Administrator
An administrator may do everything on the instance.
A plain account may edit its own record only. It may not create or delete accounts, and it may not change any role switch on any record, including its own.
A plain account may create workspaces, nodes and credentials. Each of them belongs to the account that created it: the account is its owner.
Teams¶
A team names a set of people, a set of workspaces and a set of nodes. Each workspace of the team carries an access level:
- Viewer
Read the runs, the analyses, the comments and the logs of the workspace.
- Developer
Everything that a viewer may do, and start the work: run a template, start and stop an analysis, start and stop a device, write a comment, upload a build.
- Maintainer
Everything that a developer may do, and reshape the workspace. Only the owner deletes a workspace.
A workspace that a team assigns starts at the developer level.
The members of a team see the nodes of the team, and the nodes that the workspaces of the team run on.
Only an administrator may edit a team. A team is the record of who may work on what, so a member that could edit it could grant themselves a workspace.
How access is decided¶
The rule is the same for a read and for a write:
An account that is not signed in, or that is inactive, may do nothing.
An administrator may do everything.
A workspace, and the runs, analyses, test suites and attack vectors in it, belong to the owner of the workspace. Other accounts do not see them.
A team gives its members a seat on its workspaces, at the stated level. A record that names more than one workspace needs a seat on each of them.
A run or an analysis that names no workspace belongs to the administrators.
To found a new workspace takes no seat. To reshape a workspace takes its owner or a maintainer seat. To delete it takes its owner.
A node belongs to its owner. The owner and the administrators change and delete it. A workspace may run only on a node that its writer may see.
A credential belongs to the account that stored it. Only that account and the administrators see it, change it or delete it, and only they may point a node, a workspace or a test suite at it. Every account may store credentials. When a record uses a credential that the reader cannot see, the form shows “Set — a credential you cannot see”. The credential stays on the record when the reader saves it.
Workspaces, nodes and credentials from before Midair recorded owners have no owner. They belong to the administrators, and a team gives access to them.
The settings, the distribution registries and the code generation tooling belong to the instance and need an administrator.
Features¶
Three switches decide whether more than one of a thing may exist:
Feature |
Collection |
Without it |
|---|---|---|
|
|
one account |
|
|
one team |
|
|
one node |
The switches gate the creation of the second record only. Reading, editing and deleting stay as they are, and an instance that loses a feature keeps the records that it already has.
The switches live in a features.js document in the data directory. The core
reads it once at start and never writes it. No endpoint, no session, no token
and no plugin can widen it from inside the running server. Whoever installs the
instance installs that file.
A feature that the document does not declare is not permitted. An absent document and a malformed document both declare nothing.