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: Account → Tokens.

Project API tokens

  • Scope: one project.
  • Use case: device communication, CI upload, factory tooling.
  • Created at: Project → Tokens.

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

When issuing a project token you choose one scope:

  • 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.

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.

Active tokens carry a last_used_at timestamp so you can spot stale ones safely.