DynamoOps
Developer tools

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.

LayerResponsibility
ClientBuilds the DynamoDB client from environment variables, including an optional local endpoint.
EntityA typed model of the item with the key attributes typed from the schema and a bag for additional attributes.
RepositoryData access methods: create or save, find by key, list, update where supported, delete.
ServiceBusiness-level wrapper that adds not-found checks and a place for validation.
Entry pointA 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

The Download SDK button sits next to the mode switch and uses the active language tab.
  1. Open the Code Generator

    Click </> Code with the table you want to model open.

  2. 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.

  3. 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

users-dynamo-sdk/ (Node.js / TypeScript)
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
LanguageToolingRepository methods
Node.js (TypeScript)npm, TypeScript 5, Jestcreate, findById, findAll, update, delete
Pythonrequirements.txt, pyproject.toml, boto3, dataclassescreate, find_by_id, find_all, update, delete
Java 17Maven, AWS SDK v2 + enhanced clientsave, findById (Optional), findAll, delete
C# (.NET 8)csproj, AWSSDK.DynamoDBv2, recordsSaveAsync, FindByIdAsync, FindAllAsync, DeleteAsync
Go 1.21go.mod, aws-sdk-go-v2Save, FindByID, Delete
RubyGemfile, aws-sdk-dynamodb, Struct entitysave, find_by_id, find_all, delete
PHP 8.1composer.json, aws-sdk-php, PSR-4save, findById, findAll, delete
AWS CLIbash + jq scripts, Makefilecreate, read, list, update, delete targets

After downloading

  • Copy .env.example to .env and 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.
Scope
Generated code is a strong starting point, not a finished library. Review error handling, add pagination where 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.

Related