Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/linyows/sequelize-vault

🔑 A Sequelize plugin for easily integrating Hashicorp Vault
https://github.com/linyows/sequelize-vault

express hashicorp-vault nodejs sequelize sequelize-vault typescript

Last synced: about 1 month ago
JSON representation

🔑 A Sequelize plugin for easily integrating Hashicorp Vault

Awesome Lists containing this project

README

        



Sequelize Vault: A Sequelize plugin for easily integrating Hashicorp Vault.







Installation
------------

```sh
$ npm install sequelize-vault
```

Usage
-----

This package transparently encrypts and decrypts columns in `_encrypted` format using Hashicorp Vault.

### Node.js:

```js
const Sequelize = require('sequelize')
const SequelizeVault = require('sequelize-vault')

const s = new Sequelize({
username: 'root',
password: '',
dialect: 'sqlite',
database: 'test',
})
const User = s.define('user', {
ssn_encrypted: Sequelize.STRING,
ssn: Sequelize.VIRTUAL,
})

SequelizeVault.Vault.app = 'fooapp'
SequelizeVault.Vault.address = 'http://master-vault'
SequelizeVault.default(User)

const u = await User.create({ ssn: '123-45-6789' })
console.log(u.ssn_encrypted)
// vault:v0:EE3EV8P5hyo9h...
```

### TypeScript:

```ts
import {Sequelize, Table, Column, Model} from 'sequelize-typescript'
import SequelizeVault, {Vault} from 'sequelize-vault'

const s = new Sequelize({
username: 'root',
password: '',
dialect: 'sqlite',
database: 'test',
})

@Table
class User extends Model {
@Column
ssn_encrypted: string

@Column(DataType.VIRTUAL)
ssn: string
}

s.addModels([User])

Vault.app = 'fooapp'
Vault.address = 'http://master-vault'
SequlizeVault(User)
const u = await User.create({ ssn: '123-45-6789' })
console.log(u.ssn_encrypted)
// vault:v0:EE3EV8P5hyo9h...
```

Options
-------

Key | Value
--- | ---
enabled | true or false(default)
app | my-app
token | abcd1234
address | https://vault.example.com
suffix | \_encrypted
convergented | true or false(default)
context | Vault.app(default)
path | v1/transit
timeout | 3 * 60 * 1000
ua | sequelize-vault/1.0.0 (+https://github....

Contribution
------------

1. Fork (https://github.com/linyows/sequelize-vault/fork)
1. Create a feature branch
1. Commit your changes
1. Rebase your local changes against the master branch
1. Run test suite with the `npm ci` command and confirm that it passes
1. Create a new Pull Request

Author
------

[linyows](https://github.com/linyows)