Users

What you see
The Users section lists every account that can sign in to C21 Live Control. Each account belongs to one of the two product roles and to one or more User groups; permissions flow from the role and the group memberships. Beyond the user catalogue, every instance also carries the built-in admin user, which cannot be deleted (SECf012) and always holds the System Administrator role.
Roles
C21 Live Control defines two roles:
| Role | user_role | What they do |
|---|---|---|
| System Administrator | 1 | Full access — manages users, licences, integrations, DRM providers, security policy. |
| Operator | 2 | Drives the day-to-day broadcast: On air, Live streams, the Scheduler, Recordings. |
API tokens authenticate as one of these two roles. A token is a credential issued to an existing user and inherits that user's role; there is no separate "service account" role.
Listing columns
The list exposes four columns:
| Column | Notes |
|---|---|
| User | Composite cell: the user's first + last name. |
| Contact email. | |
| Role | The user's own user_role (User group memberships do not change the role shown). |
| (no header) | Active toggle — 1 when the account can sign in, 0 when it is disabled. |
Free-text search covers username, email and the two name fields.
Canonical fields of the User schema
Regardless of how the list table renders them, the User object returned by the API carries the following fields:
| Field | Notes |
|---|---|
username | Login identifier. |
first_name · last_name | Display name (given + family). |
email | Contact email. |
user_role | 1 = System Administrator, 2 = Operator. |
is_active | 1 when the account can sign in, 0 when disabled. |
last_login | Timestamp of the most recent successful authentication. |
language_id | UI language: 1 = English, 2 = Español. |
is_api_user | 1 when the user is allowed to obtain API tokens. |
Create, edit, disable
Create
Open Add user and fill the editor:
- Username (login identifier).
- First name, Last name, Email.
- Password (the policy requires the strong-password rules below).
- Role — System Administrator or Operator.
- Language — English or Español.
- User groups — one or more group memberships.
- API user — toggle if this user will issue API tokens.
Edit
Open the user from the list (double-click the row) and update any field. Changing a password updates the password history; the policy rejects reusing the same password within a window (see Security). The built-in admin user cannot change its own username, its active state or its System Administrator role (SECf006).
Disable
Set Active to 0. The account stays in the catalogue, keeps its API tokens hashed on disk and keeps its audit history, but new sign-ins are rejected.
Delete
Deleting an account removes it permanently. The built-in admin user cannot be deleted (SECf012).
Password policy
Password rules are configured under Settings → Security and enforced at create, update and sign-in time. The platform tracks password history and rejects reuse within the configured window; failed sign-ins are counted and the account is locked after the configured threshold is reached (the lock surfaces as SECf017 and stays in place until a System Administrator unlocks the account).
API tokens
API tokens are managed exclusively over the API in this release (no dedicated UI Interface). Each token is an opaque bearer string created by POST /c21apiv2/security/tokens, returned exactly once at creation time and stored as a hash on the server. Tokens can carry an expires_days value (1–3650) or be issued without an expiry. Use GET /c21apiv2/security/tokens to list them and DELETE /c21apiv2/security/tokens/{kid} to revoke a token by its key id.
A token authenticates with the standard bearer header:
Authorization: Bearer <YOUR_API_TOKEN>
The token returns 401 Unauthorized when expired or revoked. Token CRUD is restricted to the System Administrator role. To rotate a token, create a new one, switch the integration over, then revoke the old one.
See API → Authentication for the full token lifecycle.
Field length limits
The username, first_name and last_name fields are limited to 30 characters; email accepts up to 75. Values that exceed those limits are rejected with APIf006 and the offending field name; the OpenAPI spec also exposes maxLength on each field.
FAQ
POST /c21apiv2/security/tokens, update the integration to use the new value, confirm it is working, then revoke the old one with DELETE /c21apiv2/security/tokens/{kid}. Tokens are independent objects so the two coexist for as long as you need before the revoke makes the rotation final.admin user cannot be deleted (SECf012) and cannot change its own username, active state or role (SECf006).