This release adds DynamoDB Streams support through Table options.
Please comment or contact me if you have any questions about this release.
- Added DynamoDB Streams support through Table options.
- Adding Node.js v24 & v25 to CI testing matrix.
This release adds DynamoDB Streams support through Table options.
Please comment or contact me if you have any questions about this release.
- Added DynamoDB Streams support through Table options.
- Adding Node.js v24 & v25 to CI testing matrix.
This release adds DynamoDB Streams support through Table options.
Please comment or contact me if you have any questions about this release.
- Added DynamoDB Streams support through Table options.
- Adding Node.js v24 & v25 to CI testing matrix.
This release adds DynamoDB Streams support through Table options.
Please comment or contact me if you have any questions about this release.
- Added DynamoDB Streams support through Table options.
- Adding Node.js v24 & v25 to CI testing matrix.
This release adds DynamoDB Streams support through Table options.
Please comment or contact me if you have any questions about this release.
- Added DynamoDB Streams support through Table options.
- Adding Node.js v24 & v25 to CI testing matrix.
This release adds DynamoDB Streams support through Table options.
Please comment or contact me if you have any questions about this release.
- Added DynamoDB Streams support through Table options.
- Adding Node.js v24 & v25 to CI testing matrix.
This release contains some minor fixes. It is highly recommended to upgrade to this version as soon as possible as it contains a vulnerability fix for a dependency.
Please comment or contact me if you have any questions about this release.
- Bump
@aws-sdk/client-dynamodb&@aws-sdk/util-dynamodbto v3.782.0 - Bump
js-object-utilitiesto v2.2.1 (this contains a vulnerability fix)
- Adds example code to README.md & website homepage
- Adds v3 documentation to website version dropdown
- Enables npm provenance support to verify package integrity
This release reverts the previous table.query feature due to bugs with it. It also adds a Spanish version of the Dynamoose website (more languages coming soon).
Please comment or contact me if you have any questions about this release.
- Removed
table.queryfeature due to bugs with it.
- Added Spanish version of the Dynamoose website.
- Help us translate the website into more languages at Crowdin.
This release includes performance improvements and improvements to single table design for queries.
Please comment or contact me if you have any questions about this release.
- Major performance improvements
- Improves query behavior for single table design
Table.queryfunction now available
- Not marking Dynamoose PRs as stale anymore
This release fixes a bug related to >= 10 conditions when querying or scanning.
Please comment or contact me if you have any questions about this release.
- Fixes issue where >= 10 conditions when querying or scanning would lead to an error
- Adding community page to website
This release bumps the minimum required version of Node.js to v16.x.x. It also updates the dependencies to the latest versions.
Please comment or contact me if you have any questions about this release.
- Dynamoose now requires Node.js v16.x.x or higher
- Dependency updates
This release is the final release of the v3.x.x line of Dynamoose. This release includes a few bug fixes.
It is highly recommended to upgrade to v4.x.x as soon as possible. The v4.x.x only has a single breaking change, so the migration process is very easy.
Please comment or contact me if you have any questions about this release.
- Fixing issue where index is deleted when projection is set to list of attributes instead of
ALL - Fixing issue where
Model.transactionwould fail when usingprefixand/orsuffix
- Fixing issue where
Featurestab wasn't showing on sidebar
This release includes some minor bug fixes.
Please comment or contact me if you have any questions about this release.
- Fixes inputs types for Mode.update(), allowing $SET, $ADD, $DELETE and $REMOVE
- Fixes save bug with expires set to object with no ttl
- Grammar fixes
- Fixing Mastodon verification link
This release fixes a lot of bugs and adds some nice to have features to make your Dynamoose experience even better.
Please comment or contact me if you have any questions about this release.
- Adds new
tableNameoption to Model initialization settings. - Adds new
consistentoption tobatchGet. - Improving performance for models and tables with single schema.
- Using all indexes from all schemas in table.
- Fixed an issue where indexes would get recreated when table throughput is set to ON_DEMAND.
- Now using correct TypeScript array type for
queryandscanoperations when usingtoJSON().
- Fixes Configuration documentation for
accessKeyId&secretAccessKeyin AWS SDK v3. - Typo fixes in documentation.
- Fixed an issue where ESModules import statement documentation for non-TypeScript users was incorrect.
- Added Dynamoose Mastodon link to website.
- Now requiring CLA to be signed for all pull request authors.
- Only including
distfolder in npm package. - Updating dependencies.
- Removing support for Dynamoose v2 bug fixes.
- Added Node.js v19.x to CI test suite.
This release adds support for ISO-8601 date formats! This was one of the most upvoted feature requests on the GitHub issues page. Really exciting to finally delivery this feature.
Please comment or contact me if you have any questions about this release.
- ISO-8601 Date Format Option.
- Support for specifying custom type options for
timestampproperties.
- Making Transaction documentation more clear about options you can pass in.
- Fixing edit links on documentation pages.
- Adding CLA process to new contributors pull requests.
This release fixes a few bugs, and adds the foundation for additional language support on our website.
Please comment or contact me if you have any questions about this release.
- Fix TypeScript return types to allow for chainable methods for
Query&Scan - Add support for
nullprototype objects on attribute type Object
- Add Crowdin integration to allow for translating the Dynamoose website
This release includes a few bug fixes that were back-ported from v3.
Please comment or contact me if you have any questions about this release.
- Fix TypeScript return types to allow for chainable methods for
Query&Scan - Add support for
nullprototype objects on attribute type Object
This release fixes a bug for the website where certain links and refreshing would fail sometimes.
Please comment or contact me if you have any questions about this release.
- Fixing website links.
This release fixes a bug where the map attribute property wouldn't work properly when passing it in as a key.
Please comment or contact me if you have any questions about this release.
- Fixes
mapproperty when passing it in as a key.
Dynamoose v3 is here!!! This release is a significant upgrade to Dynamoose that includes many great features. The upgrade process for v2 to v3 is also significantly easier compared to the v1 to v2 upgrade process. We encourage everyone to upgrade to v3 as soon as possible. Although v2 will continue to receive bug fixes and security updates as needed for time being, v2 will not be maintained forever, so upgrading to v3 is highly recommended.
Please comment or contact me if you have any questions about this release.
- Upgraded to AWS-SDK v3.
- This leads to a MASSIVE reduction in the package size of Dynamoose.
- Only users using the
dynamoose.awsobject will be impacted (if you are only usingdynamoose.aws.ddb.local, there will be no breaking changes). - In depth changelog:
dynamoose.aws.sdkhas been removed.dynamoose.aws.ddbnow references a@aws-sdk/client-dynamodbDynamoDBinstance instead of the previousAWS.DynamoDBinstance.- Please refer to the AWS-SDK v3 changelogs for more information about what this means for you.
dynamoose.aws.converternow uses the methods from@aws-sdk/util-dynamodb.inputhas changed toconvertToAttr.outputhas changed toconvertToNative.- For more information please refer to the AWS-SDK v3 changelogs.
- You can use
dynamoose.aws.ddb.DynamoDBto create a new@aws-sdk/client-dynamodbDynamoDBinstance.
dynamoose.model.defaultshas been renamed todynamoose.Table.defaults.- DynamoDB table initialization/updates will no longer be done upon creating a model. Instead they will be done when you initialize a
dynamoose.Tableinstance, or whenever you make a DynamoDB request for a given model (ex.get,create,update). - Renamed
DocumenttoItem.- The largest user facing API change is changing
{"return": "document"}to{"return": "item"}and{"return": "documents"}to{"return": "items"}.
- The largest user facing API change is changing
setSchema attribute settings are now used when retrieving items (ie.get,query,update, etc).- Passing
{"return": "request"}as a setting into the following methods are now preformed asynchronously:Model.getModel.deleteModel.batchGetModel.batchDelete
- Default values are now only applied if the parent object exists. For example nested object properties with a default value will only be applied if the parent object exists. If this is not what you intended, consider adding a
defaultvalue of an empty object ({}) or array ([]) to the parent attribute. dynamoose.loggeris now an async function instead of an object. For example,dynamoose.logger.status()is now(await dynamoose.logger()).status().- You must also now install the
dynamoose-loggerpackage in order to usedynamoose.logger(), otherwise an error will be thrown.
- You must also now install the
- Renaming
seperatortoseparatorin Combine type settings to fix typo. - Renaming
milisecondstomillisecondsin Date type settings to fix typo. - Migrate properties to new
dynamoose.typeobject.dynamoose.UNDEFINEDis nowdynamoose.type.UNDEFINED.dynamoose.THISis nowdynamoose.type.THIS.dynamoose.NULLis nowdynamoose.type.NULL.
- Stricter validation of Schema types. If you pass in an invalid schema attribute type, it will now throw an error upon initialization.
- For example,
new dynamoose.Schema({"id": "random"})will now throw an error.
- For example,
Model.table.create.request()has been replaced byModel.table().create({"return": "request"}).- Node.js >=v12 now required.
- New IAM roles (
listTagsOfResource,tagResource,untagResource) required ifupdateis set to true. index.globalproperty has been removed within Schema Attribute Settings. It has been replaced withindex.type, which accepts"global"or"local"as values. This setting remains optional (however, the default value has changed).- Indexes by default will be global as opposed to local.
- Added support for multiple Dynamoose instances (
dynamoose.Instance). This allows you easily make requests to multiple AWS DynamoDB regions.
- Added
dynamoose.Tableclass.dynamoose.modelnow represents an entity or type of data (ex. User, Movie, Order), anddynamoose.Tablerepresents a single DynamoDB table. By default, whenever you first use a model, adynamoose.Tableinstance will be created for you, to ensure backwards compatibility with v2. If you want to create the table manually, you can change your code like so:
// If you have the following code in v2:
const User = dynamoose.model("User", {"id": String});
// It will be converted to this in v3:
const User = dynamoose.model("User", {"id": String});
const DBTable = new dynamoose.Table("DBTable", [User]);- Added
get&setmodifier options to Schema settings to allow for Item wide modification. - Added
validatemethod option to Schema settings to allow for Item wide validation. - Added
tagssetting to Table, to be able to add tags to a table. - Added
mapsetting to Schema type settings to allow for easily converting DynamoDB attribute names to more human readable names (ex.pktouserIdandsktoorderId). This can also be used for aliases. This also includes adefaultMapproperty that can be used to overwrite what property name Dynamoose should use when retrieving an item from DynamoDB. - Added
dynamoose.type.ANYtype to allow for schema attributes to be any type. You can also set this on theschemasetting of a property to allow the object/array to have any children properties. - Added
tableClassoption to Table settings to allow for setting a table to DynamoDB's new infrequent access class option. - Added
table.create()method to create a table manually. - Added
table.nameproperty to be able to access table name. - Added
table.hashKeyproperty to be able to access table's hash key. - Added
table.rangeKeyproperty to be able to access table's range key. - Added
model.nameproperty to be able to access model name. - Added
dynamoose.type.CONSTANThelper function to create a constant type. - Added
dynamoose.type.COMBINEhelper function to create a combine type. - Added
schema.hashKey&schema.rangeKeyproperties to allow you to access the hash and range keys of your schemas. - Added
schema.indexAttributesproperty that returns an array of strings with each string representing the attribute name of each index. - Added
item.withDefaultsfunction that will return a new object with default values applied.
- Fixed bug where using
modelas an attribute name in your Schema would cause random TypeMismatch errors. - Fixed an issue where after doing certain Item related operations, the original object passed in could be mutated. This is no longer the case and original items will not be mutated when doing Item related operations.
- JSDoc documentation (Beta)! In certain editors such as VSCode, this allows you to hover over Dynamoose functions and attributes to see their documentation.
- Dynamoose's website now respects your OS color theme preference instead of always defaulting to light mode.
- Migrated documentation from Vercel to Cloudflare Pages for PR & branch builds.
- Adding new pages for documentation:
- Maintained Versions
- Version Requirements
- Added
/versionpage to documentation to easily view the Dynamoose npm version & Git commit SHA of the documentation you are viewing. - Added robots.txt file to documentation.
- Added YouTube channel link to documentation footer.
- Source map files are no longer included in the package.
- You can generate source map files by cloning the repository, running
npm install, then runningnpm run build:sourcemap. The generated source map files will be located in thedistfolder.
- You can generate source map files by cloning the repository, running
- Made a lot of internal properties private.
- This is not considered a breaking change since only documented properties, classes, methods, and functions are included in breaking changes. You should only be using documented properties, classes, methods, and functions in Dynamoose. Anything not documented is subject to change at anytime, and can lead to unexpected behavior. Read more at this FAQ item.
- Moved
source-map-supportpackage intodevDependencies. - Using Lerna to manage sub-packages for Dynamoose.
Version 3.0.0 of Dynamoose has been released. This is the corresponding v2 release. v2 will continue to receive bug fixes and security updates as needed for time being. However, we recommend that you upgrade to v3 as soon as possible, as v2 will not be maintained forever.
Please comment or contact me if you have any questions about this release.
- Dynamoose v3.0.0 has been released
This release includes a few bug fixes.
Please comment or contact me if you have any questions about this release.
- Fixing issue with recurrsive objects
- Fixing typo
This release is the corresponding v2 release for v3 move to beta. It also includes bug fixes.
Please comment or contact me if you have any questions about this release.
- Fixes
validateandsetschema attribute settings TypeScript types.
- v3 has been promoted to beta.
This release includes a few bug fixes.
Please comment or contact me if you have any questions about this release.
- Fixes a bug where using multiple schemas with an attribute with multiple types won't choose the right schema.
- Fixes a bug where nested raw conditions wouldn't work.
- Fixing typos on contributuing page.
This release fixes a bug if you started source-map-support yourself where Dynamoose would try to do the same and would lead to conflicts.
Please comment or contact me if you have any questions about this release.
- Not registering
source-map-supportif already initialized.
- Renamed primary branch from
mastertomain. - Added Node.js v16.x to CI test suite.
- General v3 alpha README fixes.
This release fixes a few major bugs.
Please comment or contact me if you have any questions about this release.
- Fixed bug where Model initialization would fail if
waitForActive: true - Fixing multiple bugs where objects passed into Dynamoose functions would be mutated
- Added FAQ about empty arrays or objects
- Improved schema index documentation
- Improving
Scan.startAt&Query.startAtexample in documentation - Fixing issue where
\nappeared in schema attribute type documentation appeared instead of new line
This release includes a few critical bug fixes.
Please comment or contact me if you have any questions about this release.
- Fix issue where query would fail with
Index can't be found for queryerror when querying table itself - Resolve issue where Model.update would fail if beginning of attribute was identical to another attribute and marked as required
- Fix issue in TypeScript where you couldn't pass a number value in for a key parameter
- Resolved bug where passing a string or number in for Model.update key parameter would throw error
This release contains general stability improvements to Dynamoose.
Please comment or contact me if you have any questions about this release.
- New
returnValuessettings property forModel.update - Allowing
waitForActivemodel setting to be a boolean
- Improvements to index selection when querying without
usingmethod - Including
saveUnknownproperties when usingModel.update - Allowing for strings to be passed into
Query.sortmethod when using TypeScript - Removing internal cache to improve memory usage
- Improving performance when working with Buffers
- Model default settings documentation fixes
This release moves internal Dynamoose object utilities to a different package.
Please comment or contact me if you have any questions about this release.
- Moving internal object utilities to different package
This release fixes a bug related to the return value of document.save and Model.create, and more.
Please comment or contact me if you have any questions about this release.
document.save&Model.createnow return the document saved to DynamoDB- Type messages now display
nullwhen passing in a invalid typenullvalue as opposed to the previousobject
- Added some more TypeScript tests
This release has a lot of bug fixes for Dynamoose.
Please comment or contact me if you have any questions about this release.
- Fixing issue where with required check failing for non updating properties when using
$DELETEinModel.delete - Prioritizing indexes with range key when querying
- Improvements to type and schema matching for nested properties
- Fixing issue where retrieving previously created model would ignore prefix and suffix
- Fixing TypeScript issues with nested models
- Fixing issue where nested models would auto-populate
- Fixing issues with nested models within nested elements
- Making
saveUnknownmore clear in documentation
- Added warning when passing in
undefinedinto Conditional
This release patches a 🚨 security vulnerability 🚨.
Please comment or contact me if you have any questions about this release.
- Patch for Prototype Pollution (GHSA-rrqm-p222-8ph2)
- Added
$DELETEoption forModel.update
- Fixed a bug related to
updatesetting being true for model with index
This release adds support for a new constant type along with a bunch of other improvements and fixes.
Please comment or contact me if you have any questions about this release.
- Added Constant type
- Added
attributessetting for Model.batchGet
- Fixed issues with nested arrays with multiple data types
- Fixed issue with array of indexes
- Fixed bugs related to multiple types for attribute
- Fixed internal method bug that had the potential to cause issues throughout codebase (only known issue related to update transactions)
- Added security policy
This release adds support for the DynamoDB null type, along with some more TypeScript fixes, and some other cool enhancements.
Please comment or contact me if you have any questions about this release.
- Added support for the DynamoDB
nulltype - Added support for
Document.savecondition setting
- Fixed TypeScript typing bugs related to Scan & Queries
- Fixed TypeScript typing bugs related to
dynamoose.THIS - Fixed TypeScript typing bugs related to
Model.waitForActive.checksetting - Fixed TypeScript typing bugs related to
dynamoose.THIS - Fixed TypeScript typing issue with multiple type options for attribute
- Better explaination for
nameparameter representing the DynamoDB table name
This release fixes a performance issue related to TypeScript.
Please comment or contact me if you have any questions about this release.
- Fixes a memory leak related to the TypeScript target being
es6. This was fixed by changing the target toes2017.
This release fixes a lot of bugs and adds support for consistent read support to Model.get and support for conditional deletes.
Please comment or contact me if you have any questions about this release.
- Added consistent read support to
Model.get - Added support for passing a condition into
Model.delete - Added support for strongly typed models in TypeScript
- Fixed bug where
document.deletewould fail with rangeKey - Transaction TypeScript improvements
- Set schema type TypeScript improvements
- Fixed issue related to having
0as number for key (range or hash) - Fixed bug where passing in reserved keyword attributes into
Model.getwould fail - Improvements to how queries decide which index to use
- Improvements to storing and retrieving documents with multi-dimensional arrays (nested arrays)
- Updated website search
- Improvements to documentation clarity
This release adds major new support for single table design.
Please comment or contact me if you have any questions about this release.
- Single Table Design Enhancements
- Nested Schemas
- Multiple Attribute Types
- Combine Type
- Multiple Schemas per Model
- Readds populate support (similar to v1 but breaking changes between v1 and v2 populate functionality)
- Adds document.toJSON() method
- Adds Serialization support
- Minor bug fixes for TypeScript typings
This release fixes some minor bugs found in Dynamoose.
Please comment or contact me if you have any questions about this release.
- Fixed an issue with creation of local secondary indexes
- Fixed an issue where specifying attributes to retrieve wouldn't work with reserved DynamoDB keywords
- Adding icons to website for GitHub & npm links
This release adds a few key features to improve your Dynamoose workflow.
Please comment or contact me if you have any questions about this release.
- Added support for
query.sort - Added support for only passing model name into
dynamoose.modeland having it retrieve the registered model that was already registered previously - Added support for passing original value into
setattribute setting function - Added attributes setting to
Model.getto only retrieve certain attributes
- Fixed an issue where
document.originalwould return a DynamoDB object and not a parsed object in certain cases
This release fixes some minor bugs.
Please comment or contact me if you have any questions about this release.
- Fixing issue where creating multiple indexes would fail when creating or updating table
- Fixing issue where
Model.updatewith single object andrangeKeywould fail
This release fixes a few minor bugs with Model.update.
Please comment or contact me if you have any questions about this release.
- Fixed an issue where
Model.updateusing$REMOVEwouldn't work on non defined attributes usingsaveUnknown - Fixed an issue where
Model.updatewould throw an AWS errorExpressionAttributeValues must not be emptywhen using$REMOVE
This release fixes some bugs related to TypeScript and improves the website with more accurate information.
Please comment or contact me if you have any questions about this release.
- 🔍 Added search functionality to website
- TypeScript Fixes
- Removed esModuleInterop from tsconfig.json
- Allowing Schema Index Throughput to be Optional
- Add migration section from v1 to v2 to website FAQ page
- Fixed ES Modules Import Documentation
This release adds beta support for TypeScript typings.
Please comment or contact me if you have any questions about this release.
- Beta support for TypeScript Typings
Version 2.0 is here!! This is a full rewrite of Dynamoose from the ground up. This means that the changelog listed below is not necessarily complete, but attempts to cover a lot of the high level items of this release. There are a lot of minor bug fixes and improvements that went into this rewrite that will not be covered, as well as potientally some breaking changes that are not included in the changelog below.
Although version 2.0 is a full rewrite, the underlying API hasn't changed very much. Things like Model.scan or Model.get have not changed seamingly at all. The foundational syntax is indentical to version 1.0. This means the majority of breaking changes won't effect most users or will require only minor tweaks.
Please comment or contact me if you have any questions or problems with this release.
- Complete rewrite of the codebase!!!
- Better conditional support with new
dynamoose.Conditionclass - Same familiar API
- Better conditional support with new
- Entirely new website
- Dark mode 🌑
- Edit links on each page to contribute changes and improve documentation
- Improved sidebar with easier orgainzation
- Links to navigate to next/previous pages on website
- License has been changed to The Unlicense from MIT
dynamoose.setDefaultshas been renamed todynamoose.model.defaults.setdynamoose.localhas been renamed todynamoose.aws.ddb.localdynamoose.setDDBhas been renamed todynamoose.aws.ddb.setdynamoose.revertDDBhas been renamed todynamoose.aws.ddb.revertdynamoose.AWS.config.updatehas been renamed todynamoose.aws.sdk.config.updatedynamoose.ddbhas been renamed todynamoose.aws.ddbMapattribute type has been replaced withObjectListattribute type has been replaced withArray- DynamoDB set types are now returned as JavaScript Set's instead of Array's
- DynamoDB set types are now defined as
{"type": Set, "schema": [String]}as opposed to the former[String]or{"type": [String]}. This is more explict and makes it more clear that the type is a set. - Trying to save a Document with a property set to
nullwill now throw an error. If you would like to remove the property set it todynamoose.UNDEFINEDto set it to undefined without taking into account thedefaultsetting, orundefinedto set it to undefined while taking into account thedefaultsetting. - Model
updatesetting now includes more update actions. To use the v1 update behavior change the value ofupdatesetting to be["ttl", "indexes"]. - Schema
defaultvalue does not pass the model instance intodefaultfunctions any more. Model.update$LISTAPPENDhas been removed, and$ADDnow includes the behavior of$LISTAPPEND$DELETEhas been renamed to$REMOVE$REMOVE(previously$DELETE) now maps to the correct underlying DynamoDB method instead of the previous behavior of mapping to$REMOVE$PUThas been replaced with$SET
Model.getTableReqhas been renamed toModel.table.create.requestModel.table.create.request(formerlyModel.getTableReq) is now an async functionmodel.originalItemhas been renamed tomodel.original(orDocument.original)Document.originalformerly (model.originalItem) no longer returns the last item saved, but the item first retrieved from DynamoDB- The following Schema settings have been moved to Model settings:
expiresthroughput
expires.ttlnow accepts a number representing milliseconds as opposed to secondsexpires.defaultExpiresis no longer an option (most behavior from this option can be replicated by using the newdynamoose.UNDEFINEDfeature)expires.returnExpiredItemshas been renamed toexpires.items.returnExpiredModel.transaction.conditionCheckhas been renamed toModel.transaction.conditionModel.transaction.conditionnow accepts a conditional instance instead of an object to specify the conditional you wish to run- In the past the
saveUnknownoption for attribute names would handle all nested properties. Now you must use*to indicate one level of wildcard or**to indicate infinate levels of wildcard. So if you have an object property (address) and want to parse one level of values (no sub objects) you can useaddress.*, oraddress.**to all for infinate levels of values (including sub objects) - In the past non-string type properties would be implicitly coerced into strings with a call to their
toString()methods when saved asStringtype attributes. This will now throw aTypeMismatcherror. Strings should be converted before saving. useNativeBooleans&useDocumentTypeshave been removed from the Model settingsscan.count()has been removed, andscan.counts()has been renamed toscan.count().- The attribute types
Array&Objectin Dynamoose v1 don't work without aschemaoption in v2 Scan.null&Query.nullhave been removed. In most cases this can be replaced with.not().exists().- Expires TTL value is set to be a default value. In Dynamoose v1 there were cases where expires TTL wouldn't be set, in Dynamoose v2, the behavior of if the Expires TTL is set behaves the same as any default value
- Custom methods have changed behavior:
schema.methodis nowmodel.methods.documentschema.staticsis nowmodel.methods- Both
model.methods&model.methodshave two functions that you call to add & remove methods.set&deletemethods exist on both objects that you can use to add your methods. This is compared to the old system of calling the function forschema.methodor setting the object forschema.statics.
- TypeScript Support (v2.1.0) (coming soon, see more information here)
Model.populate- Plugin Support
- Fixed issue where objects would get stored as a string
[object Object]instead of the actual object
- Documentation has been rewritten from the ground up to be more clear and provide more examples
- Dynamoose logo now included in
internalfolder - More automated tests which leads to more stablity for Dynamoose (100% code coverage)
- More resources/documentation have been added regarding project structure
- Code of Conduct (CODE_OF_CONDUCT.md)
- Contributing Guidelines (CONTRIBUTING.md)
- Improvements to README
- More badges about project state
- More information relevant to repository (branch strategy, etc)
1.11.1 (2019-09-05)
1.11.0 (2019-08-25)
- plugin: solve problem with rejecting during batchput:called (be01f8c)
- plugin: solve problem with rejecting during update:called (959ba8c)
1.10.0 (2019-06-28)
- scan: add Scan.using() for scanning sparse secondary indexes (cfb5614)
1.9.0 (2019-06-27)
- schema: change the way attributes are set by parseDynamo function (b8d1737)
1.8.5 (2019-06-25)
- schema: fixed circular reference with
JSON.stringifyin Schema (3f614f0)
1.8.4 (2019-06-23)
- change originalItem from being static (44a5b6b)
1.8.3 (2019-06-22)
1.8.2 (2019-06-22)
- dynamoose.ts.d: Add/fix TypeScript types (e7472a7)
1.8.1 (2019-06-22)
- types: added streamOptions to ModelOption (a85780a)
1.8.0 (2019-06-11)
- plugin: item prop for model:put put:called (5043cf3)
1.7.3 (2019-05-15)
- model: allows string for array attribute in contains condition (f68c13a)
1.7.2 (2019-03-18)
1.7.1 (2019-03-18)
- naming: remove extension from name (ca346d0)
1.7.0 (2019-03-18)
- ts: adding ts testing, compiling and exports (0d2ef68)
- ts: fix ci script to also lint typescript (992c7ff)
- ts: fixing spelling (e087570)
1.6.5 (2019-03-03)
1.6.4 (2019-02-19)
1.6.3 (2019-02-18)
- model: fixing batchDelete syntax bug (dfb448f)
- model: fixing update and condition check syntax bug (74623bf)
1.6.2 (2019-02-13)
This is a minor bug fix for Plugins, and also adds some other improvements for plugins and other parts of the app.
Please comment or contact me if you have any questions about this release.
This is a minor release with documentation and project improvements.
Please comment or contact me if you have any questions about this release.
- Add constructor for model schema types in TypeScript #547
- Defined dynamoose transaction in dynamoose.d.ts #540
- Documentation Improvements #561
- ESLint #557
- Project Improvements #558
- Updating issue template with warning about not filling out fields #538
- Updating Dependencies #562
- Refactor transactions tests to use DynamoDB Local tests #563
This release adds support for list_append when adding elements to a list using the Model.update method.
Please comment or contact me if you have any questions about this release.
This version adds some more options to the model and schema options objects.
Please comment or contact me if you have any questions about this release.
- errorUnknown #531
- defaultReturnValues #533
Just a simple bug fix release!
Please comment or contact me if you have any questions about this release.
- Make saveUnknown work recursively #522
- Always use Array.isArray to check if array #521
- Fix error logging for data/schema mismatch #518
- Changing to not update timestamps when scaning or querying with filter #510
- dynamoose.d.ts allow validate property on schema to return promise as well as raw boolean #520
- update typescript typings to allow
ON_DEMANDthroughput in SchemaOptions #530
Dynamoose Version 1.3.0 finishes implementation of some important features (DynamoDB transaction support, and pay per request billing mode), improves the overall stability of the project (reduces NPM package size, bug fixes, throwing more errors), along many more improvements.
Please comment or contact me if you have any questions about this release.
- RAW DynamoDB Transaction Item Support #486
- Model.transaction.conditionCheck #485
- Async Schema Methods #492
- Reducing Size of NPM Package #484
- Raise error if list or map not provided #443
- Fix support for PAY_PER_REQUEST BillingMode when Model includes Global Secondary Indexes #504
- Fixing problem where if primary key starts with underscore Model.create doesn’t work #502
- Adding documentation for query.using method #489
- Adding documentation for populating an array of items #493
- Fixes a typo in Model.update documentation #506
AWS reInvent 2018 has wrapped up, and this release includes support for all of the DynamoDB goodies announced. This version also includes beta support for plugins! Plugin support has the potential to have breaking changes in the future with no warning, so please be aware of that when using the system. Please give feedback on plugins by creating issues on the Dynamoose repository.
Please comment or contact me if you have any questions about this release.
- DynamoDB Transaction Support #472
- DynamoDB On-Demand Support #471
- Plugins - BETA #325
- Adding Node.js version 11 to Travis CI test suite #468
- Adding more NPM Keywords #469
- Updating NPM Dependencies #466 #473
Dynamoose version 1.1.0 has a few improvements for debugging Dynamoose as well as a few new features.
Please comment or contact me if you have any questions about this release.
- Update batchPut to work with timestamps #449
- Adding expires defaultExpires function #452
- Make debugging index creation dramatically easier #440
- Adding debug messages for setDDB and revertDDB #451
Dynamoose version 1.0.1 comes with some minor bug fixes to solve problems with Dynamoose version 1.0.0. We are actively monitoring the GitHub Issues and will continue to work to provide bug fixes as fast as possible. Please create a GitHub Issue or contact me if you are having problems and we will work to address it as fast as possible.
Dynamoose version 1.0.0 is here. This is a massive release, and will also be the first official breaking update to Dynamoose. You can view the details about the release below.
This version officially removes support for Node.js versions below 8.0. Versions below 8.0 might work, but we do not make guarantees. Even if Node.js versions below 8.0 work with Dynamoose 1.0+ we might add features that break support for older Node.js versions without a SEMVER major version release.
The one major thing about the release notes below that is a bit confusing is the fact that ES6/Future Changes are in the Breaking changes section. That section is directly related to Requiring Node.js version 8.0 and higher. Therefor although the breaking change is technically the fact that Node.js versions less than 8.0 won't be supported, they are directly related, therefor they are both in the Breaking changes section. In future 1.x we might add more ES6/Future Changes, but those will not be considered breaking changes due to the fact that it will only break if you are running on a Node.js version less than version 8.0.
Please comment or contact me if you have any questions about this release.
- Requiring Node.js version 8.0 and higher #366
- Toggle useDocumentTypes and useNativeBooleans defaults to true #376
- Query.all and Scan.all Delay Seconds to Milliseconds #287
- Fix data corruption when storing binary data #386
- Adding updateTimestamps option to Model.save #317
- Feature/add enum attribute #274
model.originalItem()#338
- Adding support for saveUnknown being an array #333
- DynamoDB Document Client/DAX Support #330
- Adding better error handling for parsing invalid data from DynamoDB #331
- Adding support for SSESpecification #306
- Adding support for DynamoDB table streams #332
Model.getTableReq()#308 #151- Static methods are automatically bound with the context of their Model #361
- Recreate dynamo db instance on .local() #354
- added support for specifying the ReturnValues option in update #350
- Expose Model classes to Schema methods #400 #397
- Refactoring custom error code #414
- Saying which table is effected by Error #356
- Adding expires returnExpiredItems property #426
- DDB Functions #429
- Updates Expires attribute on Model Updates Option #420
- ES6/Future Changes
- Fix saveUnknown throwing errors when value where falsy #336
- Fix scanByRawFilter containing - Select: 'COUNT' #341
- Fix loading document type attributes from DynamoDB when when saveUnknown=true #339
- Fix the ModelError type #374
- Fixes falsy key value for batch get #379
- Fix serverSideEncryption option #383
- Using Buffer.from instead of new Buffer #413
- Fixing issue with query with multiple indexes #344 #343
- Save unknown update #431 #403
- Fixing typo related to stream options #432 #430
- Improving Model.delete documentation #309
- Updated TypeScript types #358 #357
- Updating typescript documentation for create vs put overwrite default #377 #359
- GitHub issue and PR templates #394 #405
- Updating metadata #369
- Change QueryKey and ScanKey type to any #419
- General project work #409
Version 0.8.7 is here! Below is a list of the changes released in Version 0.8.7. Huge THANK YOU to everyone who submitted pull requests and issues in this release. As always keep the issues and pull requests coming, only makes this package better!!
- Adding support for
Query.all()#223 - Suffix Option #321
- Catch corrupted JSON error #243 #242
- Pass model instance directly to schema::attributeFromDynamo #257
- Fix range key on queries #225
- Provide model when converting keys .toDynamo #217
- Normalise Scan response shape when using "RawAWSFilter" #320
- Remove JSON.stringify for model in Debug message #277
- Set NewModel.name to include table name #300
- Allow unknown types to be populated as native dynamo types #240
- Competition of
.populatemethod #250
- Adding Model.queryOne to docs #298
- Schema Get Function Clarification #291
- Fixed Typo in README #282
- Better Static method example (
getAll) #284 - Added Dynamoose Gitter chat badge to README #247
- Improving README badges on retina displays #229
- Moving ChangeLog and Roadmap to separate files #305
- Moving Examples to Website #304
- Adding AWS X-Ray Support documentation #307 #144
- Throughput is only respected on table creation #316 #311
- More Query tests #290
- Even more Query tests #310
- Fixing issue where some scan tests weren't being run correctly #289
- Switch to NYC (istanbul) for unit test coverage #219
- Enable unit test code coverage reporting #215
- Scan test to ensure all with delay and limit works correctly #314
- Nested Properties Schema Support #258
- Option fields optional, and added overloaded create function #245
- Improve the typing support for
.model()#234 #233 - Allow update partial data #319
- Adds
ddbinterface #280
- useNativeBooleans #55
- saveUnknown #125
- Support for multiple indexes defined on the hashkey attribute of the table
- scan.all() #93 #140
- scan.parallel d7f7f77
- TTL support 92994f1
- added schema parsing overrides #145
- populate #137
- Added consistent() to scan. #15 #142
- Default function enhancements #127
- Create required attributes on update #96
- Add typescript typings #123
- Added .count() for Query and Scan #101
- Nested scans #141 #158