SDK generator
Download a complete, production-oriented data access project for your table in TypeScript, Python, Java, C#, Go, Ruby, PHP or shell, with entity, repository, service and client layers already wired.
What you get
The SDK generator reads the open table’s key schema and produces a ZIP with a ready-to-run project in the language of the active Code Generator tab. Every project follows the same layered structure so teams can move between stacks without relearning the layout.
| Layer | Responsibility |
|---|---|
| Client | Builds the DynamoDB client from environment variables, including an optional local endpoint. |
| Entity | A typed model of the item with the key attributes typed from the schema and a bag for additional attributes. |
| Repository | Data access methods: create or save, find by key, list, update where supported, delete. |
| Service | Business-level wrapper that adds not-found checks and a place for validation. |
| Entry point | A small demo that exercises the layers end to end. |
Each ZIP also ships a README, a dependency manifest and a .env.example with AWS_REGION, credential placeholders and DYNAMO_ENDPOINT for DynamoDB Local.
Generating a project
- Open the Code Generator
Click </> Code with the table you want to model open.
- Pick the language tab
Node.js (TypeScript), Python, Java, C#, Go, Ruby, PHP or AWS CLI. The AWS CLI tab yields a shell-script project with a Makefile.
- Click ⬇ Download SDK
The ZIP is assembled in the app and saved as
<table>-dynamo-sdk-<language>.zip, containing a root folder<table>-dynamo-sdk/.
The entity name is the singular PascalCase form of the table name: users becomes User, policies becomes Policy.
Project layouts
package.json @aws-sdk/client-dynamodb, @aws-sdk/lib-dynamodb, dotenv, typescript, jest
tsconfig.json
.env.example
README.md
src/
client/dynamoClient.ts DocumentClient singleton, DYNAMO_ENDPOINT support
entities/User.ts User interface + CreateUserInput
repositories/UserRepository.ts create, findById, findAll(limit), update, delete
services/UserService.ts not-found checks around the repository
index.ts demo| Language | Tooling | Repository methods |
|---|---|---|
| Node.js (TypeScript) | npm, TypeScript 5, Jest | create, findById, findAll, update, delete |
| Python | requirements.txt, pyproject.toml, boto3, dataclasses | create, find_by_id, find_all, update, delete |
| Java 17 | Maven, AWS SDK v2 + enhanced client | save, findById (Optional), findAll, delete |
| C# (.NET 8) | csproj, AWSSDK.DynamoDBv2, records | SaveAsync, FindByIdAsync, FindAllAsync, DeleteAsync |
| Go 1.21 | go.mod, aws-sdk-go-v2 | Save, FindByID, Delete |
| Ruby | Gemfile, aws-sdk-dynamodb, Struct entity | save, find_by_id, find_all, delete |
| PHP 8.1 | composer.json, aws-sdk-php, PSR-4 | save, findById, findAll, delete |
| AWS CLI | bash + jq scripts, Makefile | create, read, list, update, delete targets |
After downloading
- Copy
.env.exampleto.envand fill in the region and credentials, or rely on your AWS profile. - Install dependencies with the command in the README (
npm install,pip install -r requirements.txt,mvn package, and so on). - Rename the default package or namespace (
com.example.dynamo,App\,github.com/example/…) to match your organisation. - Extend the entity with your non-key attributes; only key attributes are typed from the schema.
findAll returns a single page, and add tests before shipping. Pair it with the IaC export so the table definition and the code live in the same repository.