AWS

@crvouga/mockingbird-service-aws

Combined S3, SQS, IAM and STS provider endpoint emulator with native controls.

Parity: Vendor API workflows compared with the pinned Emulate package oracleInfrastructure29 of 29 operationsIn-process fetchNode servermockingbird-aws
$
npm install -D @crvouga/mockingbird-service-aws

Playground

Requests go to the real emulator running in this tab. State persists across requests, and the journal shows what it received. A green dot marks operations whose sample succeeds as-is; others need ids from earlier responses.

Loads the real @crvouga/mockingbird-service-aws into this tab on first send
https://s3.amazonaws.com

Send a request to see the emulator's response.

Operations

29 of 29 operations in the vendored contract are emulated.

MethodPathOperationStatus
GET/{bucket}GET /:bucketGET /:bucket
POST/{bucket}POST /:bucketPOST /:bucket
PUT/{bucket}PUT /:bucketPUT /:bucket
DELETE/{bucket}DELETE /:bucketDELETE /:bucket
HEAD/{bucket}HEAD /:bucketHEAD /:bucket
GET/{bucket}/GET /:bucket/GET /:bucket/
POST/{bucket}/POST /:bucket/POST /:bucket/
PUT/{bucket}/PUT /:bucket/PUT /:bucket/
DELETE/{bucket}/DELETE /:bucket/DELETE /:bucket/
HEAD/{bucket}/HEAD /:bucket/HEAD /:bucket/
GET/{bucket}/{key}GET /:bucket/:key{.+}GET /:bucket/:key{.+}
PUT/{bucket}/{key}PUT /:bucket/:key{.+}PUT /:bucket/:key{.+}
DELETE/{bucket}/{key}DELETE /:bucket/:key{.+}DELETE /:bucket/:key{.+}
HEAD/{bucket}/{key}HEAD /:bucket/:key{.+}HEAD /:bucket/:key{.+}
GET/s3/{bucket}GET /s3/:bucketGET /s3/:bucket
POST/s3/{bucket}POST /s3/:bucketPOST /s3/:bucket
PUT/s3/{bucket}PUT /s3/:bucketPUT /s3/:bucket
DELETE/s3/{bucket}DELETE /s3/:bucketDELETE /s3/:bucket
HEAD/s3/{bucket}HEAD /s3/:bucketHEAD /s3/:bucket
GET/s3/{bucket}/{key}GET /s3/:bucket/:key{.+}GET /s3/:bucket/:key{.+}
PUT/s3/{bucket}/{key}PUT /s3/:bucket/:key{.+}PUT /s3/:bucket/:key{.+}
DELETE/s3/{bucket}/{key}DELETE /s3/:bucket/:key{.+}DELETE /s3/:bucket/:key{.+}
HEAD/s3/{bucket}/{key}HEAD /s3/:bucket/:key{.+}HEAD /s3/:bucket/:key{.+}
GET/GET /GET /
GET/_inspectorGET /_inspectorGET /_inspector
GET/s3/GET /s3/GET /s3/
POST/iam/POST /iam/POST /iam/
POST/sqs/POST /sqs/POST /sqs/
POST/sts/POST /sts/POST /sts/

Documentation

The package README, the same file that ships in the npm tarball.Edit on GitHub

Local emulators. Real API contracts. Part of Mockingbird.

Combined S3 object storage, SQS queues, IAM identities and STS credentials. Runs through Mockingbird's portable Fetch runtime with SQLite persistence, namespaces, checkpoints, faults and admin controls.

Install

Shell
npm install @crvouga/mockingbird-service-aws

Usage

TypeScript
import { ListBucketsCommand, S3Client } from "@aws-sdk/client-s3"
import { createServer } from "@crvouga/mockingbird-service-aws/server"

// Test setup: start the emulator and point the AWS SDK client your application uses at it.
const emulator = await createServer({ seed: 1 })
const s3 = new S3Client({
  endpoint: emulator.url,
  region: "us-east-1",
  credentials: { accessKeyId: "fixture", secretAccessKey: "fixture" },
  forcePathStyle: true,
})

// Application code: ordinary SDK calls.
const { Buckets } = await s3.send(new ListBucketsCommand({}))
// Buckets[0].Name === "emulate-default"

await emulator.close() // after the test

API

  • AwsAPI: portable provider instance; accepts SQLite, namespace, clock, fixtures and baseUrl.
  • createRuntime: shared runtime, including native namespace and checkpoint controls.
  • AWS_NAMESPACE: default storage namespace.
  • document, operationIds, supportedOperationIds: registered provider route inventory.
  • createServer, DEFAULT_PORT, serveTarget from /server: loopback listener and CLI configuration.

fixtures accepts synthetic provider seed records. reset() restores defaults. Emulate 0.12.1 is a test oracle only, never a runtime dependency. Vendor handlers ported under Apache-2.0 retain their license and attribution; see LICENSE_EMULATE and THIRD_PARTY_NOTICES.md.

See SUPPORT.md for coverage and limits and API_EVIDENCE.md for validation status.

↑↓ to navigate↵ to open