Users

Users

Manage user accounts that can sign in to C21 Live Control.

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:

Roleuser_roleWhat they do
System Administrator1Full access — manages users, licences, integrations, DRM providers, security policy.
Operator2Drives 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:

ColumnNotes
UserComposite cell: the user's first + last name.
EmailContact email.
RoleThe 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:

FieldNotes
usernameLogin identifier.
first_name · last_nameDisplay name (given + family).
emailContact email.
user_role1 = System Administrator, 2 = Operator.
is_active1 when the account can sign in, 0 when disabled.
last_loginTimestamp of the most recent successful authentication.
language_idUI language: 1 = English, 2 = Español.
is_api_user1 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

Copyright © 2026