Fixed output of tables.put() to return the updated item, as in versions <=7; fixes #554
[8.0.0 - 8.0.2] 2024-02-03
Architect Functions just got a lot faster. Gone are the days of 500-1000ms cold starts due to instantiating the AWS SDK – Functions v8 is now between 2-5x faster, and uses 2-4x less memory, courtesy of aws-lite!
Added
arc.tables() now includes a new DynamoDB client: _client, an instantiation of @aws-lite/dynamodb
_client is largely functionally similar to the AWS SDK's DocumentClient, but a bit less fiddly (we think)
arc.tables() methods should be functionally the same, including key error properties
Changed
Breaking change: AWS SDK v2 + v3 DynamoDB client + DocumentClient instantiation is now opt-in
Code depending on data._db or data._doc must now instantiate with the awsSdkClient boolean option, like so: await arc.tables({ awsSdkClient: true })
If you only rely on the DocumentClient (_doc), you may want to just try using the new @aws-lite/dynamodb-based _client
Breaking change: while we've taken efforts to ensure the maximum degree of compatibility with AWS SDK v2 and v3 errors, the errors returned in Arc Functions 8.0 (using aws-lite) may still vary slightly
This only really applies if your error handling relies on specific properties or values
If you just console.log() your errors, you will be totally fine, and the quality of the errors you get via aws-lite will most likely improve with this change
Note: if you're an AWS SDK v2 user considering migrating to v3, error incompatibility will apply even more so; v3 errors are incompatible with v2, whereas aws-lite errors attempt to be compatible with both SDK v2 + v3
Added Node.js 20.x to test matrix
Breaking change: removed support for Node.js 14.x (now EOL, and no longer available to created in AWS Lambda)
[7.0.0] 2023-07-10
Added
Added support for arc.http to accept either async or callback functions
This is not a breaking change, and arc.http.async will remain as a legacy code path
Moving forward we suggest passing all middleware through arc.http, which will figure out whether to run in async or callback mode
Note: pass only callback or async middleware, but not both. Don't drink and drive, and don't mix async primitives.
Added service discovery for DynamoDB-backed sessions
Now you can set your ARC_SESSION_TABLE_NAME env var with the logical name of your sessions table found in your app.arc file
However, the physical DynamoDB table name will work as well
Added support for JWE session encryption customization
Configure by adding an env var named ARC_APP_SECRET_ALGO with a value of A256GCM (default if not specified), A192GCM, or A128GCM
Added tables.scanAll method for retrieving the entire contents of a table
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps @architect/functions from 8.0.1 to 8.0.3.
Changelog
Sourced from
@architect/functions
's changelog.... (truncated)
Commits
fab783f
8.0.3ccae13b
Fix output oftables.put()
to return the updated item, as in versions <=7; ...8c052dc
8.0.21406aa8
Updateaws-lite
, deps, and changelogDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show