Skip to content

Tokens

SimpleOTA has two token kinds. Both are bearer tokens; both are stored as salted hashes server-side; both are shown in plaintext once at creation and never retrievable later.

Personal API tokens (PATs)

  • Scope: all projects you own.
  • Use case: human/admin tasks, CLI scripts, multi-project automation.
  • Created at: API Tokens in the top navigation.

Project API tokens

  • Scope: one project.
  • Use case: device communication, CI upload, factory tooling.
  • Created at: the Project API tokens card on the project page, via Issue token.

Choosing the right one

Job Token kind
Devices polling /check/ Project token
CI uploading firmware Project token
Building a dashboard against your fleet Personal token
Cross-project scripting Personal token

Default to project tokens. Smaller blast radius if leaked.

Project token scopes

Scopes are checkboxes, so a token can carry one or both. New tokens default to device only.

  • device: for firmware running on hardware. Can only poll /check/ and /status/. Cannot upload firmware or touch deployments.
  • api: for CI pipelines and developer tooling. Can upload firmware and manage deployments. Cannot poll OTA endpoints.

Only ever flash a device-scope token into hardware. An api-scope token extracted from a device would let an attacker upload firmware or modify your deployments. For the same reason, do not tick both scopes on a token you are going to flash: a token holding api is an upload credential no matter what else it can do.

Naming

Always name tokens (ci-upload-bot, factory-flash-rig-3, alex-laptop). The dashboard lists them by name; revoking one is a one-click operation that doesn't disrupt others.

Rotation

There is no automatic rotation. The recommended rhythm is:

  1. Create a new token alongside the old one.
  2. Roll it out wherever the old one is used.
  3. Revoke the old one.

Tokens record when they were last used. The dashboard shows this for personal tokens and for per-device tokens.