create-cloudmock-app
create-cloudmock-app generates a fully working project with CloudMock wired up — tests, CI, docker-compose, and all. No boilerplate required.
Quick Start
Section titled “Quick Start”npx create-cloudmock-app my-appThe CLI prompts you to choose a language, AWS services, and test framework, then generates a complete project.
CLI Options
Section titled “CLI Options”Pass flags to skip interactive prompts:
npx create-cloudmock-app my-app --lang node --services dynamodb --test jestnpx create-cloudmock-app my-app --lang python --services s3 --test pytestnpx create-cloudmock-app my-app --lang go --services sqs| Flag | Values |
|---|---|
--lang | node, python, go, java, rust |
--services | s3, dynamodb, sqs, sns, lambda (comma-separated) |
--test | jest, vitest, pytest, junit5 |
Templates
Section titled “Templates”node-dynamodb
Section titled “node-dynamodb”Express REST API with full DynamoDB CRUD.
npx create-cloudmock-app my-app --lang node --services dynamodbcd my-app && npm install && npm startEndpoints: POST /items, GET /items, GET /items/:id, DELETE /items/:id
Tests use @cloudmock/sdk — no Docker required for npm test.
node-s3
Section titled “node-s3”Express file upload/download server backed by S3.
npx create-cloudmock-app my-app --lang node --services s3cd my-app && npm install && npm startEndpoints: POST /upload?key=name, GET /files, GET /files/:key
node-sqs
Section titled “node-sqs”Express producer API + SQS worker consumer.
npx create-cloudmock-app my-app --lang node --services sqscd my-app && npm installnpm start # HTTP API (terminal 1)npm run worker # SQS consumer (terminal 2)Endpoints: POST /messages, GET /messages
python-dynamodb
Section titled “python-dynamodb”FastAPI app with full DynamoDB CRUD using boto3.
npx create-cloudmock-app my-app --lang python --services dynamodbcd my-app && pip install -r requirements.txtuvicorn app:app --reloadInteractive docs at http://localhost:8000/docs. Tests via pytest.
python-s3
Section titled “python-s3”FastAPI app with S3 file upload and download using boto3.
npx create-cloudmock-app my-app --lang python --services s3cd my-app && pip install -r requirements.txtuvicorn app:app --reloadEndpoints: POST /upload?key=name, GET /files, GET /files/{key}
go-dynamodb
Section titled “go-dynamodb”Go net/http server with DynamoDB CRUD using aws-sdk-go-v2.
npx create-cloudmock-app my-app --lang go --services dynamodbcd my-app && go mod tidy && go run .Tests use sdk.New() for in-process CloudMock (zero network, ~20μs/op):
go test ./...go-sqs
Section titled “go-sqs”Go HTTP server with SQS producer/consumer using aws-sdk-go-v2.
npx create-cloudmock-app my-app --lang go --services sqscd my-app && go mod tidy && go run .java-dynamodb
Section titled “java-dynamodb”Spring Boot REST controller with DynamoDB.
npx create-cloudmock-app my-app --lang java --services dynamodbcd my-app && mvn spring-boot:runTests use CloudMock.start() via JUnit 5:
mvn testrust-dynamodb
Section titled “rust-dynamodb”Axum HTTP server with DynamoDB using the official AWS SDK for Rust.
npx create-cloudmock-app my-app --lang rust --services dynamodbcd my-app && cargo runIntegration tests use the cloudmock crate:
cargo testWhat Each Template Includes
Section titled “What Each Template Includes”Every generated project contains:
- Application code — a working server with real AWS SDK calls
- Tests — full test suite using CloudMock (no Docker needed for tests)
- docker-compose.yml — CloudMock container for local development
- .github/workflows/ci.yml — CI pipeline using
cloudmock-action - README.md — getting-started instructions
Local Development
Section titled “Local Development”All templates include a docker-compose.yml for running CloudMock locally:
docker compose upOr use the npm package:
npx cloudmockThen point your SDK at http://localhost:4566.
CloudMock DevTools
Section titled “CloudMock DevTools”With CloudMock running, open http://localhost:4500 to explore:
- Distributed trace topology for your service
- Per-service request metrics and latency
- Error tracking and chaos engineering controls