Skip to content

tobiasrask/dynamodb-storage-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DynamoDB storage backend for entity-api

dynamodb-storage-backend provides DynamoDB storage for Entity API.

Installation

Using npm:

$ npm install --save dynamodb-storage-backend

Example usage

import AWS from 'aws-sdk'
import {
  DynamoDBStorageBackend,
  DynamoDBStorageHandler
  } from 'dynamodb-storage-backend'

AWS.config.update({
  region: 'eu-west1'
})

const DB_SCHEMAS = [
  {
    schema:  {
      TableName: 'message',
      AttributeDefinitions: [
        {
          AttributeName: 'id',
          AttributeType: 'S'
        }
      ],
      KeySchema: [
        {
          AttributeName: 'id',
          KeyType: 'HASH'
        }
      ],
      ProvisionedThroughput:  {
        ReadCapacityUnits: '1',
        WriteCapacityUnits: '1'
      }
    }
  }
]

const backend = new DynamoDBStorageBackend({
    dynamodb: new AWS.DynamoDB({
      // Dynamodb endpoint to be used. This uses Dynamodb local
      endpoint: new AWS.Endpoint('http://localhost:8000')
    })
})

class MessageEntityType extends EntityType {

  constructor(variables = {}) {
    variables.entityTypeId = 'message'
    variables.entityClass = MessageEntity
    variables.handlers = {
      storage: new DynamoDBStorageHandler({
        tablePrefix: 'entity_',
        storage: backend,
        schemaData: DB_SCHEMAS
      }),
      view: new EntityViewHandler(variables),
    }
    super(variables)
  }
}

Test

Run tests using npm:

$ npm run test

About

DynamoDB storage backend for Entity API.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published