This package provides an extension for Apache's TinkerPop3 Gremlin javascript driver compatible with IAM Database Authentication for Neptune.
This project is a Node.js module and can be installed with npm.
npm install gremlin-aws-sigv4
This package reads the environment variables for AWS authentication. These variables can be overridden.
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
);
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
);
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,
}
# install dependencies
npm install
# run the tests
npm run test
Please do contribute! Open an issue or submit a pull request.
The project falls under @Shutterstock's Code of Conduct.