Skip to content

API Tokens

Personal API Tokens authenticate automation (CLI, SDKs, CI) as a specific user. Tokens inherit that user’s ACL.

Lifecycle

Action Where
Create / rename / expire / rotate / revoke Profile → API Tokens (/profile.php)
Same operations via REST /api/v1/auth/tokens (see Developer Guide)

The plaintext jrs_… value is shown once at create/rotate. The UI otherwise shows only a short token_prefix.

Token properties

  • Prefix jrs_ (32 random bytes, base64url secret; SHA-256 hash stored)
  • Optional expiration (never, 30d, 90d, 1y, or custom date)
  • Currently inherit the full user ACL (scopes column reserved)

Operational guidance

  • Create tokens under least-privilege users
  • Prefer short expirations for CI where practical; rotate on schedule
  • Revoke when staff leave or automation is retired
  • Never put long-lived tokens in query strings or frontend bundles
  • MCP clients use this same token. See MCP Server