{"id":13474542,"url":"https://github.com/dynamoose/dynamoose","last_synced_at":"2025-05-10T00:51:07.615Z","repository":{"id":14254998,"uuid":"16962535","full_name":"dynamoose/dynamoose","owner":"dynamoose","description":"Dynamoose is a modeling tool for Amazon's DynamoDB","archived":false,"fork":false,"pushed_at":"2025-04-29T02:13:45.000Z","size":14642,"stargazers_count":2215,"open_issues_count":122,"forks_count":363,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-05-08T20:56:38.807Z","etag":null,"topics":["amazon-dynamodb","dynamodb","dynamoose","javascript","nodejs"],"latest_commit_sha":null,"homepage":"https://dynamoosejs.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dynamoose.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"fishcharlie","open_collective":"dynamoose"}},"created_at":"2014-02-18T20:24:54.000Z","updated_at":"2025-05-05T09:36:30.000Z","dependencies_parsed_at":"2023-11-28T03:42:28.444Z","dependency_job_id":"89e0d2d5-8ddc-4a2c-8ee6-986982fc7cdc","html_url":"https://github.com/dynamoose/dynamoose","commit_stats":{"total_commits":3057,"total_committers":166,"mean_commits":18.41566265060241,"dds":"0.30650964998364405","last_synced_commit":"9c99e5f08866e4bce00ffe1d0ae98f9bcf3cf38f"},"previous_names":["dynamoosejs/dynamoose"],"tags_count":129,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynamoose%2Fdynamoose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynamoose%2Fdynamoose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynamoose%2Fdynamoose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dynamoose%2Fdynamoose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dynamoose","download_url":"https://codeload.github.com/dynamoose/dynamoose/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253157250,"owners_count":21863077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amazon-dynamodb","dynamodb","dynamoose","javascript","nodejs"],"created_at":"2024-07-31T16:01:13.059Z","updated_at":"2025-05-08T22:29:12.186Z","avatar_url":"https://github.com/dynamoose.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"internal/banner/Banner.png\" width=\"400\" max-width=\"90%\" alt=\"Dynamoose\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://www.npmjs.com/package/dynamoose\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/npm/v/dynamoose\" alt=\"npm\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/dynamoose/dynamoose/blob/main/LICENSE\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/github/license/dynamoose/dynamoose\" alt=\"License\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://www.npmjs.com/package/dynamoose\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/npm/dw/dynamoose\" alt=\"npm Downloads\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/dynamoose/dynamoose/blob/main/SPONSOR.md\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/sponsor-Dynamoose-brightgreen\" alt=\"Sponsor Dynamoose\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://github.com/dynamoose/dynamoose/actions\"\u003e\n\t\t\u003cimg src=\"https://github.com/dynamoose/dynamoose/workflows/CI/badge.svg\" alt=\"CI\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://coveralls.io/github/dynamoose/dynamoose?branch=main\"\u003e\n\t\t\u003cimg src=\"https://coveralls.io/repos/github/dynamoose/dynamoose/badge.svg?branch=main\" alt=\"Coverage Status\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://crowdin.com/project/dynamoosejscom\"\u003e\n\t\t\u003cimg src=\"https://badges.crowdin.net/dynamoosejscom/localized.svg\" alt=\"Crowdin Translation Status\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://join.slack.com/t/dynamoose/shared_invite/enQtODM4OTI0MTc1NDc3LWI3MmNhMThmNmJmZDk5MmUxOTZmMGEwNGQzNTRkMjhjZGJlNGM5M2JmZjMzMzlkODRhMGY3MTQ5YjQ2Nzg3YTY\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/chat-on%20slack-informational.svg\" alt=\"Slack Chat\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://charlie.fish/contact\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/badge/contact-me-blue\" alt=\"Contact\"\u003e\n\t\u003c/a\u003e\n\t\u003ca rel=\"me\" href=\"https://mastodon.social/@dynamoose\"\u003e\n\t\t\u003cimg alt=\"Mastodon Follow\" src=\"https://img.shields.io/mastodon/follow/110203918766866705?style=social\"\u003e\n\t\u003c/a\u003e\n\t\u003ca href=\"https://twitter.com/DynamooseJS\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/twitter/follow/dynamoosejs?style=social\" alt=\"Twitter\"\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nDynamoose is a modeling tool for Amazon's DynamoDB (inspired by [Mongoose](https://mongoosejs.com/)).\n\n### Dynamoose is Sponsored by Dynobase\n\nDynobase helps you accelerate your DynamoDB workflow with code generation, faster data exploration, bookmarks and more: [https://dynobase.dev/](https://dynobase.dev/?ref=dynamoose)\n\n### Getting Started\n\n\u003c!-- start-block:a1507dd3-6aff-4885-a9fd-14d46a4b7743 --\u003e\n#### Description\n\nDynamoose is a modeling tool for Amazon's DynamoDB. Dynamoose is heavily inspired by [Mongoose](https://mongoosejs.com/), which means if you are coming from Mongoose the syntax will be very familiar.\n\n#### Key Features\n\n- Type safety\n- High level API\n- Easy to use syntax\n- DynamoDB Single Table Design Support\n- Ability to transform data before saving or retrieving items\n- Strict data modeling (validation, required attributes, and more)\n- Support for DynamoDB Transactions\n- Powerful Conditional/Filtering Support\n- Callback \u0026 Promise support\n- AWS Multi-region support\n\u003c!-- end-block:a1507dd3-6aff-4885-a9fd-14d46a4b7743 --\u003e\n\n\u003c!-- start-block:1baa7441-d01a-40e2-80d7-71ce05674ec9 --\u003e\n#### Example\n\n```ts\nimport * as dynamoose from \"dynamoose\";\nimport * as crypto from \"crypto\";\n\n// Create a new Dynamoose model\nconst Book = dynamoose.model(\"Book\", {\n\t\"id\": {\n\t\t\"type\": String,\n\t\t\"hashKey\": true,\n\t\t\"default\": () =\u003e crypto.randomUUID()\n\t},\n\t\"title\": {\n\t\t\"type\": String,\n\t\t\"required\": true\n\t},\n\t\"author\": {\n\t\t\"type\": String,\n\t\t\"required\": true\n\t},\n\t\"publishedDate\": {\n\t\t\"type\": Date,\n\t\t\"required\": true\n\t},\n\t\"genre\": {\n\t\t\"type\": String,\n\t\t\"required\": true,\n\t\t\"enum\": [\n\t\t\t\"fantasy\",\n\t\t\t\"sci-fi\",\n\t\t\t\"mystery\",\n\t\t\t\"thriller\",\n\t\t\t\"romance\",\n\t\t\t\"non-fiction\",\n\t\t\t\"horror\",\n\t\t\t\"biography\",\n\t\t\t\"autobiography\",\n\t\t\t\"poetry\",\n\t\t\t\"children's\",\n\t\t\t\"young-adult\",\n\t\t\t\"other\"\n\t\t]\n\t},\n\t\"summary\": String,\n\t\"pageCount\": Number\n});\n\n// Add a new item to the Book table\nconst newBook = new Book({\n\t\"title\": \"Harry Potter and the Philosopher's Stone\",\n\t\"author\": \"J.K. Rowling\",\n\t\"publishedDate\": new Date(\"1997-06-26\"),\n\t\"genre\": \"fantasy\",\n\t\"summary\": \"The story of a young wizard who discovers he is a wizard and attends a magical school.\",\n\t\"pageCount\": 223\n});\nawait newBook.save();\n\n// Retrieve all items from the Book table\nconst allBooks = await Book.scan().exec();\nconsole.log(allBooks);\n```\n\u003c!-- end-block:1baa7441-d01a-40e2-80d7-71ce05674ec9 --\u003e\n\n### Resources\n\n#### General\n\n- [Website](https://dynamoosejs.com)\n- [Sponsor](SPONSOR.md)\n- [Contributing Guide](CONTRIBUTING.md)\n- [Code of Conduct](CODE_OF_CONDUCT.md)\n- [Changelog](CHANGELOG.md)\n- [License](LICENSE)\n\n#### Social\n\n- [Slack](https://join.slack.com/t/dynamoose/shared_invite/enQtODM4OTI0MTc1NDc3LWI3MmNhMThmNmJmZDk5MmUxOTZmMGEwNGQzNTRkMjhjZGJlNGM5M2JmZjMzMzlkODRhMGY3MTQ5YjQ2Nzg3YTY)\n- \u003ca rel=\"me\" href=\"https://mastodon.social/@dynamoose\"\u003eMastodon\u003c/a\u003e\n- [Twitter](https://twitter.com/DynamooseJS)\n\n### Branch Strategy\n\nBelow you will find the current branch strategy for the project. Work taking place on the branches listed below might be further ahead than the versions on NPM. All documentation links found below will also be reflective of the published version on NPM. If you would like to live dangerously and run non-released versions, you can run `npm install dynamoose/dynamoose#BRANCH` (replacing `BRANCH` with the branch listed below). You will also find the most up-to-date documentation in the `docs` folder of the branch.\n\n| Branch | Version | NPM Tag | Links |\n| --- | --- | --- | --- |\n| [`main`](https://github.com/dynamoose/dynamoose/tree/main) | 4.x.x |   | - [Documentation](https://dynamoose.pages.dev) |\n| [`v3`](https://github.com/dynamoose/dynamoose/tree/v3) | 3.3.x |   | - [Documentation](https://v3.dynamoose.pages.dev) |\n| [`v3.3.0` (tag)](https://github.com/dynamoose/dynamoose/tree/v3.3.0) | 3.3.0 | latest-3 | - [Documentation](https://v3.dynamoosejs.com) |\n| [`v2`](https://github.com/dynamoose/dynamoose/tree/v2) | 2.8.x |   | - [Documentation](https://v2.dynamoose.pages.dev) |\n| [`v2.8.8` (tag)](https://github.com/dynamoose/dynamoose/tree/v2.8.8) | 2.8.8 | latest-2 | - [Documentation](https://v2.dynamoosejs.com)\n","funding_links":["https://github.com/sponsors/fishcharlie","https://opencollective.com/dynamoose"],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynamoose%2Fdynamoose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdynamoose%2Fdynamoose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynamoose%2Fdynamoose/lists"}