Skip to content

shutterstock/gremlin-aws-sigv4

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Extension for Apache's TinkerPop3 Gremlin JS driver compatible with IAM Database Authentication for Neptune

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published