gremlin-aws-sigv4

This package provides an extension for Apache's TinkerPop3 Gremlin [javascript driver](https://github.com/apache/tinkerpop/tree/master/gremlin-javascript/src/main/javascript/gremlin-javascript) compatible with [IAM Database Authentication for Neptune](htt

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
gremlin-aws-sigv4
2943.6.1a year ago5 years agoMinified + gzip package size for gremlin-aws-sigv4 in KB

Readme

gremlin-aws-sigv4
This package provides an extension for Apache's TinkerPop3 Gremlin javascript driver compatible with IAM Database Authentication for Neptune.

Installation

This project is a Node.js module and can be installed with npm.
npm install gremlin-aws-sigv4

Usage

This package reads the environment variables for AWS authentication. These variables can be overridden.

Usage with environment variables

These three enviroment variables must be defined.
  • AWS_ACCESS_KEY_ID – AWS access key.
  • AWS_SECRET_ACCESS_KEY – AWS secret key.
  • AWS_DEFAULT_REGION – AWS region.

const gremlin = require('gremlin-aws-sigv4');

const graph = new gremlin.structure.Graph();
const connection = new gremlin.driver.AwsSigV4DriverRemoteConnection(
  // host
  'your-instance.neptune.amazonaws.com', 

  // port
  8182,

  // options, 
  {}, 

  // connected callback
  () => { 
    const g = graph.traversal().withRemote(connection);
    const count = await g.V().count().next();
    connection.close();
  }, 

  // disconnected callback
  (code, message) => { }, 

  // error callback
  (error) => { } 
);

Usage without environment variables

const gremlin = require('gremlin-aws-sigv4');

// creates the connection
const graph = new gremlin.structure.Graph();
const connection = new gremlin.driver.AwsSigV4DriverRemoteConnection(
  // host
  'your-instance.neptune.amazonaws.com',

  // port
  8182, 
  
  // options
  { 
    accessKeyId: 'your-access-key',
    secretAccessKey: 'your-secret-key',
    sessionToken: 'your-optional-session-token',
    region: 'your-region',
  },
  
  // connected callback
  () => { 
    const g = graph.traversal().withRemote(connection);
    const count = await g.V().count().next();
    connection.close();
  }, 
  
  // disconnected callback
  (code, message) => { }, 
  
   // error callback
   (error) => { }
);

Additional options

Thses are the available config options, none of them is required.
{
  // Open secure connection - mandatory for engine version 1.0.4.0 and above
  secure: true,

  // Enable auto-reconnection on connection failure - default: false 
  autoReconnect: true,

  // Number of auto-reconnection retries - default: 10 
  maxRetry: 3,
}

Tests

Unit tests

# install dependencies
npm install

# run the tests
npm run test:unit

Dependencies

Contribute

Please do contribute! Open an issue or submit a pull request.
The project falls under @Shutterstock's Code of Conduct.

License

License: MIT