Nav-pack registry

Overview

The signed delivery layer between WaveForm and autonomous robots in the field.

A nav-pack is the machine-readable contract a robot needs to operate at a site. The registry signs, versions, and serves these packs to fleets of robots — with cryptographic verification, per-customer ACL, autonomy-tier gating, and an append-only audit log.

Robots don’t talk to the rest of the platform directly. They talk to the registry. The registry is small, fast, and the only component on the serving path that needs autonomy-grade SLAs.

What problem it solves

If you ship a fleet of autonomous robots into the world, you face five problems on day one:

  1. Authenticity. How does a robot know the map it’s driving on is the one you signed off on?
  2. Versioning. When the site changes, how does the robot know to swap to the new pack — and how does it atomically transition without driving off the road?
  3. Distribution. How do thousands of robots fetch large pack bytes without melting your origin server?
  4. Authorization. Which robots are allowed to operate at which site, at which autonomy tier?
  5. Observability. When something goes wrong with a single robot, how do you know which pack version it had?

The nav-pack registry is WaveForm’s answer to all five. Read on for the shape.

The shape of a request

At its narrowest, the contract for a robot looks like this:

http
GET /v1/areas/<area_id>/nav-pack
Authorization: Bearer <robot-device-token>

Returns the latest active, signed manifest for that area scoped to the robot’s profile + customer. The robot uses byte_uri on each layer to pull bytes directly from KMS-encrypted S3 (presigned URLs, ~1 h TTL).

The pieces

Don’t serve raw bytes from the API
The registry’s job is metadata + signed manifests, not byte delivery. Layer bytes live in S3 behind short-lived presigned URLs. This keeps the API cheap and the CDN math sane for fleets at scale.

Production status

The nav-pack registry is live in prod at api.waveform.vision/v1/.... The infrastructure (S3 bucket, KMS keys, SQS queues, all four worker Lambdas) is provisioned via the same CloudFormation stack that runs the rest of WaveForm. See API reference for the full surface and SDKs for typed client libraries.

Docs — WaveForm — WaveForm