Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/linyows/sequelize-vault
- Owner: linyows
- License: mit
- Created: 2018-04-16T02:51:45.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-02-03T06:53:12.000Z (almost 4 years ago)
- Last Synced: 2024-10-09T13:50:46.863Z (about 1 month ago)
- Topics: express, hashicorp-vault, nodejs, sequelize, sequelize-vault, typescript
- Language: TypeScript
- Homepage:
- Size: 302 KB
- Stars: 8
- Watchers: 4
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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 RequestAuthor
------[linyows](https://github.com/linyows)