Skip to content

Objects

Objects are Hub's content storage — the artifacts a device actually runs: kernels, the system image, platform/app filesystems, and other binary content. Objects API is the heart of cloud file storage for everything a step references.

API: the objects service — request flows, plus the /objects endpoint reference to try calls live.

Content-addressed

Every object is identified by the sha256 of its content. Because the identity is the hash:

  • The same content is stored once, no matter how many devices or steps reference it (deduplication).
  • A device can verify exactly what it downloaded.
  • Steps reference objects by a stable prn (Pantahub resource name) that never points at different bytes.

Each object also has a size, content type, visibility (public/private), and an owner.

Uploading and downloading

You create an object by uploading its content; Hub stores the bytes in S3-compatible storage and records the metadata. Downloads don't stream through the API — instead the object's download endpoint returns a short-lived, pre-signed URL straight to the storage backend, which the client then fetches directly. This keeps large transfers off the API path.

How steps use objects

A trail step doesn't embed artifacts — it references them by object prn plus an access token. To ship new software you:

  1. Upload the artifact as an object (or reuse an existing one / an app).
  2. Append a step whose state points at that object.
  3. The device resolves the reference, downloads the object via its pre-signed URL, and applies it.

Objects are marked deleted rather than hard-removed, so references in historical revisions stay meaningful.