Screwdriver DynamoDB datastore
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.eslintignore
.eslintrc.json
.gitignore
.npmignore
CONTRIBUTING.md
LICENSE
README.md
index.js
package.json
screwdriver.yaml

README.md

Screwdriver Datastore Dynamodb

Version Downloads Build Status Open Issues Dependency Status License

interface with dynamodb

Deprecated

Please note that this code is no longer used by the screwdriver.cd team and has not been maintained in a while. You are welcome to use and/or contribute to it at your own risk.

Usage

npm install screwdriver-datastore-dynamodb

Initialization

Datastore DynamoDB is an extension of the screwdriver-datastore-base class and implements all of the functions exposed.

Currently the AWS credentials will be loaded from the shared credentials file, or environment variables. Reference to AWS SDK documentation

http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html#Configuring_the_SDK_in_Node_js

const DynamoDB = require('screwdriver-datastore-dynamodb');

const datastore = new DynamoDB();

Define a specific region and credentials to interact with

const DynamoDB = require('screwdriver-datastore-dynamodb');

const irelandDatastore = new DynamoDB({
    region: 'eu-west-1',
    accessKeyId: 'foo',
    secretAccessKey: 'bar'
});

get

Obtain a single record given an id. If the record does not exist, it will return null.

Parameter Type Description
config Object Each of its properties defines your get operation
config.table String The datastore table name
config.params Object Each of its properties defines the get parameters
config.params.id String The ID of the item to fetch from the datastore

Example

const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();

// successful get operation
return datastore.get({
    table: 'fruits',
    params: {
        id: 'apple'
    }
}).then((data) => {
    console.log(data); // { color: 'red', id: 'apple', type: 'fruit' }
});

// get operation on a non-existing entry
return datastore.get({
    table: 'fruits',
    params: {
        id: 'celery'
    }
}).then((data) => {
    console.log(data); // null
});

save

Save a record in the datastore. Returns saved data.

Parameter Type Description
config Object Each of its properties defines your get operation
config.table String The datastore table name
config.params Object Each of its properties defines the get parameters
config.params.id String The ID that the data is associated with
config.params.data Object The data that will be saved in the datastore

Example

const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();

// successful save operation
return datastore.save({
    table: 'pets',
    params: {
        id: 'toto',
        data: {
            type: 'dog'
        }
    }
}).then((data) => {
    console.log(data); // { id: 'toto', type: 'dog' }
});

update

Update a record in the datastore. Returns null if the record does not exist

Parameter Type Description
config Object Each of its properties defines your get operation
config.table String The datastore table name
config.params Object Each of its properties defines the get parameters
config.params.id String The ID that the data is associated with
config.params.data Object The data to be updated in the datastore

Example

const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();

// successful update operation
return datastore.update({
    table: 'pets',
    params: {
        id: 'toto',
        data: {
            bestFriend: 'Dorothy'
        }
    }
}).then((data) => {
    console.log(data); // { id: 'toto', type: 'dog', bestFriend: 'Dorothy' }
});

// update operation on a non-existing entry
return datastore.update({
    table: 'pets',
    params: {
        id: 'trex',
        data: {
            bestFriend: 'me'
        }
    }
}).then((data) => {
    console.log(data); // null
});

scan

Scan for records in the datastore. Returns [] if the table is empty. Returns error if the table does not exist.

Parameter Type Description
config Object Each of its properties defines your get operation
config.table String The datastore table name
config.params Object Query to filter on

Example

const DynamoDB = require('screwdriver-datastore-dynamodb');
const datastore = new DynamoDB();

// successful scan operation
return datastore.scan({
    table: 'animalNoises',
    params: {}
}).then((data) => {
    console.log(data);
});

Testing

npm test

License

Code licensed under the BSD 3-Clause license. See LICENSE file for terms.