# 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

Latest version **3.6.1** (published 2022-09-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install gremlin-aws-sigv4
pnpm add gremlin-aws-sigv4
yarn add gremlin-aws-sigv4
bun add gremlin-aws-sigv4
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 3.6.1 |
| Published | 2022-09-09 |
| First published | 2018-10-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 28.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 29 |
| Author | Fabrice Lamant |
| Maintainers | sstk-admin, fabrice404 |
| Keywords | aws, graph, gremlin, javascript, neptune, sigv4 |

## Links

- npm: https://www.npmjs.com/package/gremlin-aws-sigv4
- Repository: https://github.com/shutterstock/gremlin-aws-sigv4
- Homepage: https://github.com/shutterstock/gremlin-aws-sigv4#readme
- Issues: https://github.com/shutterstock/gremlin-aws-sigv4/issues
- npm.io page: https://npm.io/package/gremlin-aws-sigv4

## Dependencies (3)

- [aws4](https://npm.io/package/aws4.md) ^1.11.0
- [debug](https://npm.io/package/debug.md) ^4.3.4
- [gremlin](https://npm.io/package/gremlin.md) ^3.6.1

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 3.6.1 (latest) — 2022-09-09
- 3.5.2 — 2022-03-14
- 3.5.1 — 2021-12-13
- 3.4.8 — 2020-10-18
- 3.4.1 — 2019-01-28
- 3.4.0 — 2019-01-25
- 3.3.5 — 2018-12-20
- 3.3.4 — 2018-11-12
- 1.0.0 — 2018-10-12

## README

# 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](https://docs.aws.amazon.com/neptune/latest/userguide/iam-auth.html).

## Installation
This project is a [Node.js](https://nodejs.org) module and can be installed with [npm](https://npmjs.com).

`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.

```js
  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
```js
  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.
```js
{
  // 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
```bash
# install dependencies
npm install

# run the tests
npm run test:unit
```

## Dependencies

- [aws4](https://www.npmjs.com/package/aws4)
- [debug](https://www.npmjs.com/package/debug)
- [gremlin](https://www.npmjs.com/package/gremlin)

## Contribute
Please do contribute! Open an issue or submit a pull request.

The project falls under [@Shutterstock](https://github.com/shutterstock/welcome)'s [Code of Conduct](https://github.com/shutterstock/welcome/blob/master/CODE_OF_CONDUCT.md).

## License
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

---
_Source: https://npm.io/package/gremlin-aws-sigv4 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
