← all adapters
azure-servicebus-style
simulates Azure Service Bus + Storage 2024-01-01
restadapter v0.2.018 routes
verification
use it
# add to stunt.yaml
services:
azure-servicebus:
adapter: embedded:azure-servicebus-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the Azure Service Bus + Storage API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Azure Service Bus + Storage. 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 Service Bus + Storage 2024-01-01 surface — the data is fake, the behavior is real.
backing stores
sb_messagesstorage_messages
api surface (18)
generated from the adapter manifest — exactly what boots, nothing more
18 routes
POST/{queue}/messages
DELETE/{queue}/messages/head
POST/{queue}/messages/{lockToken}/{action}
GET/$topicInfo
GET/topics
PUT/topics/{topic}
GET/topics/{topic}
DELETE/topics/{topic}
POST/topics/{topic}/messages
GET/topics/{topic}/subscriptions
PUT/topics/{topic}/subscriptions/{sub}
GET/topics/{topic}/subscriptions/{sub}
DELETE/topics/{topic}/subscriptions/{sub}
POST/topics/{topic}/subscriptions/{sub}/messages
POST/topics/{topic}/subscriptions/{sub}/messages/{lockToken}/{action}
POST/{account}/{queue}/messages
GET/{account}/{queue}/messages
DELETE/{account}/{queue}/messages/{messageid}
VM-verified behaviors (7)
- ✓a correctly signed SAS token sends the message
- ✓a tampered signature is 401 InvalidSignature
- ✓an expired se is 401 ExpiredToken
- ✓structurally broken tokens map to MalformedToken or InvalidSignature
- ✓Entra Bearer tokens are accepted alongside SAS
- ✓the storage-queue endpoint accepts the same SAS verifier
- ✓a tampered storage-queue signature is 401 InvalidSignature
Not implemented (6)
- No queue management — queues are neither created nor listed
- No subscription rules — fan-out is the default match-all broadcast only
- No dead-letter settle action or DLQ receive (subqueue $deadletterqueue)
- No sessions, scheduled send, or duplicate detection
- No AMQP 1.0 transport — HTTP/REST surface only
- No Storage queue peek, update, clear, or queue create/list/delete
Differs from the real API (3)
- Default 30s peek-lock, overridable via simulator-only lockduration query param
- Bearer auth accepted with any non-empty token — only SAS is verified
- Storage queue send accepts JSON MessageText in place of the real XML body
want more of the Azure Service Bus + Storage 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.