GithubHelp home page GithubHelp logo

zhaozhongming / gremlin-aws-sigv4 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from shutterstock/gremlin-aws-sigv4

0.0 1.0 0.0 275 KB

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

License: MIT License

JavaScript 100.00%

gremlin-aws-sigv4's Introduction

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(
    'your-instance.neptune.amazonaws.com', // host
    8182, // port
    {}, // options,
    () => { // connected callback
      const g = graph.traversal().withRemote(connection);
      const count = await g.V().count().next();
      connection.close();
    }, 
    (code, message) => { }, // disconnected callback
    (error) => { } // error callback
  );

Usage without environment variables

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

  const host = 'your-instance.neptune.amazonaws.com';
  const port = 8182;
  const opts = {
    accessKey: 'your-access-key',
    secretKey: 'your-secret-key',
    region: 'your-region',
  };

  // creates the connection
  const graph = new gremlin.structure.Graph();
  const connection = new gremlin.driver.AwsSigV4DriverRemoteConnection(
    'your-instance.neptune.amazonaws.com', // host
    8182, // port
    { // options
      accessKey: 'your-access-key',
      secretKey: 'your-secret-key',
      region: 'your-region',
    },
    () => { // connected callback
      const g = graph.traversal().withRemote(connection);
      const count = await g.V().count().next();
      connection.close();
    }, 
    (code, message) => { }, // disconnected callback
    (error) => { } // error callback
  );

Additional options

Thses are the available config options, none of them is required.

{
  // 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

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

gremlin-aws-sigv4's People

Contributors

fabrice404 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.