← all adapters

azure-storage-style

simulates Azure Storage Blob REST API 2024-08-04

restadapter v0.1.09 routes

verification

VMVM tier — no SDK suite yet· surface 9 · not implemented 6 · differs 3

use it

# add to stunt.yaml
services:
  azure-storage:
    adapter: embedded:azure-storage-style

# then
$ stunt up

The embedded: source extracts this adapter from the binary — no git clone, fully offline.

how to mock the Azure Storage Blob REST API locally

Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Azure Storage Blob REST API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Azure Storage Blob REST API 2024-08-04 surface — the data is fake, the behavior is real.

backing stores

containersblobs

api surface (9)

generated from the adapter manifest — exactly what boots, nothing more · covers 7% of the real API's 69 routes (derived from spec azure-rest-api-specs BlobStorage 2026-06-06 @ 2026-06-06)

9 routes
GET/
PUT/{container}
GET/{container}
HEAD/{container}
DELETE/{container}
PUT/{container}/{blob}
GET/{container}/{blob}
HEAD/{container}/{blob}
DELETE/{container}/{blob}

VM-verified behaviors (6)

  • container create passes auth with clock-driven Last-Modified and ETag
  • blob upload passes auth with byte-exact content
  • blob download round-trips bytes with the stored ETag
  • ListContainers includes the container with query params signed
  • a tampered signature gets the 403 AuthenticationFailed XML envelope
  • an account outside the key table fails closed with 403

Not implemented (6)

  • No Append Blob or Page Blob types — Block Blob only
  • No lease operations (?comp=lease) on blobs or containers
  • No blob snapshots or copy (?comp=copy, from URL)
  • No container ACL or metadata set/get — HEAD metadata only
  • No service-level properties, stats, CORS, or user delegation keys
  • No blob tags/index (?comp=tags) or soft delete/immutability

Differs from the real API (3)

  • Content-MD5 carries base64 SHA-256 (engine has no MD5) — documented deviation
  • SAS checked structurally (sv/sig/se present) and any non-empty bearer accepted
  • PUT on an existing container updates it in place 201 (real Azure: 409 conflict)
want more of the Azure Storage Blob REST API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.