1.4.3 • Published 2 years ago

@vulcancreative/serverless-storage v1.4.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Serverless Storage, for Framework

Serverless Storage

serverlessStorage is a backend key/value library (similar to localStorage or sessionStorage), which uses a combination of DynamoDB and S3 to store data blobs, greatly simplifying database connectivity in a serverless environment.

Installation

To install this plugin, you can use serverless plugin install, or you can use yarn or npm.

With Serverless

serverless plugin install -n @vulcancreative/serverless-storage

Make sure you have serverless-storage in your plugin list:

plugins:
  - "@vulcancreative/serverless-storage"

With Yarn

yarn add --dev @vulcancreative/serverless-storage

then you need to manually add the plugin to your serverless.yml file:

plugins:
  - "@vulcancreative/serverless-storage"

With npm

npm install --save-dev @vulcancreative/serverless-storage

then you need to manually add the plugin to your serverless.yml file:

plugins:
  - "@vulcancreative/serverless-storage"

Configuration

Put these variables in your serverless.yml file:

provider:
  environment:
    STORAGE_DEFAULT_REGION: us-east-1 # update this with the region you want
    STORAGE_BUCKET_NAME: "${self:custom.serverlessStorage.bucketName}"
    STORAGE_TABLE_NAME: "${self:custom.serverlessStorage.bucketName}"
  iam:
    role:
      statements:
        - Effect: "Allow"
          Action:
            - "dynamodb:CreateTable"
            - "dynamodb:DeleteItem"
            - "dynamodb:DeleteTable"
            - "dynamodb:DescribeTable"
            - "dynamodb:GetItem"
            - "dynamodb:PutItem"
            - "dynamodb:Query"
            - "iam:PassRole"
            - "kms:CreateGrant"
            - "kms:Decrypt"
            - "kms:DescribeKey"
            - "kms:Encrypt"
            - "kms:GenerateDataKey"
            - "kms:RevokeGrant"
            - "s3:*"
          Resource: "*"

custom:
  serverlessStorage:
    bucketName: '' # update this with the name of your bucket
    tableName: '' # update this with the name of your table

Basic Usage

Saving data

import { serverlessStorage } from "@vulcancreative/serverless-storage";

const myTable = process.env.STORAGE_TABLE_NAME;
//user part is partition key
//my-user-id is sort key
const myKey = "user:my-user-id";
const myValue = event;

const test = await serverlessStorage.putData(myKey, myValue, myTable);

Delete data

const myTable = process.env.STORAGE_TABLE_NAME;
const myKey = "user:my-user-id";
const data = await serverlessStorage.removeData(myKey, myTable)

Check if key exists:

const myTable = process.env.STORAGE_TABLE_NAME;
const myKey = "user:my-user-id";
await serverlessStorage.hasData(myKey, myTable)

Get item:

const myTable = process.env.STORAGE_TABLE_NAME;
const myKey = "user:my-user-id";
const data = await serverlessStorage.getData(myKey, myTable)

Example Project

Example implementation for this project can be found here

Sponsors

Financing of this project's development is primarily sponsored by Vulcan Creative, a boutique digital product firm and Kilo, Social Media for the Antisocial.

1.4.3

2 years ago

1.4.2

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.3.0

2 years ago

1.2.30

2 years ago

1.2.27

2 years ago

1.2.28

2 years ago

1.2.29

2 years ago

1.2.0

2 years ago

1.2.8

2 years ago

1.2.7

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.2.12

2 years ago

1.2.13

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.2.16

2 years ago

1.2.14

2 years ago

1.2.15

2 years ago

1.2.18

2 years ago

1.2.19

2 years ago

1.2.20

2 years ago

1.2.23

2 years ago

1.2.24

2 years ago

1.2.21

2 years ago

1.2.22

2 years ago

1.2.25

2 years ago

1.2.26

2 years ago

1.1.19

2 years ago

1.1.18

2 years ago

1.1.17

2 years ago

1.2.9

2 years ago

1.1.23

2 years ago

1.1.22

2 years ago

1.1.21

2 years ago

1.1.20

2 years ago

1.1.24

2 years ago

1.1.16

3 years ago

1.1.15

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.14

3 years ago

1.1.13

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.10

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2-alpha4

3 years ago

1.1.2-alpha3

3 years ago

1.1.2-alpha

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago