@1auth/store-dynamodb
AWS DynamoDB storage implementation for serverless persistence.
Install
npm i @1auth/store-dynamodb Peer dependencies
npm i @aws-sdk/client-dynamodb @aws-sdk/util-dynamodb Usage
import * as store from '@1auth/store-dynamodb'
store.default({
timeToLiveExpireOffset: 10 * 24 * 60 * 60 // 10 days
}) Configuration options
| Option | Type | Default | Description |
|---|---|---|---|
client | DynamoDBClient | auto-created | Custom DynamoDB client |
timeToLiveExpireOffset | number | 864000 | TTL offset in seconds |
timeToLiveKey | string | "remove" | DynamoDB TTL attribute name |
randomId | object | — | ID generation options |
API
Implements the store interface using DynamoDB operations:
exists—GetItemwith projectioncount—QuerywithSelect: 'COUNT'select—GetItemorQueryselectList—Queryinsert—PutItemupdate—UpdateItemremove—DeleteItem
IAM permissions
{
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:UpdateItem",
"dynamodb:DeleteItem",
"dynamodb:Query",
"dynamodb:BatchWriteItem"
],
"Resource": "arn:aws:dynamodb:*:*:table/1auth-*"
}