@creditkarma/vault-client

中文文档
1.0.0发布于 2022/06/23Apache-2.0TypeScriptCommonJS近 30 天下载 2592

用 TypeScript 书写的用于与 Hashicorp Vault 通信的客户端

中文使用文档
文档目录7 节
  1. 安装
  2. 使用量
  3. 断层连接
  4. 故障服务
  5. 运行测试
  6. 捐款
  7. 许可证

默认客户端

用 TypeScript 写的 Hashicorp Vault 的客户端 .

安装

$ npm install --save @creditkarma/vault-client

使用量

这个图书馆揭露了两个与Vault,VaultClient和VaultService合作的班级. VaultClient提供了略高的抽象度和比较有限的API.

断层连接

VaultClient提供了两种方法:获取和设定. 两种方法都返回承诺.

选项

VaultClient 期望 Vault 的访问符可以在本地文件中提供. 此文件的路径作为选项传递 .

可用的选项 :

  • apiVersion - 要使用的API版本. 目前这只能是"v1".
  • 协议 - 使用“ http” 或“ https” 的协议。 默认为"http".
  • 目的地 - Vault 实例的位置 。 默认为“ localhost: 8200 ” .
  • 挂载 - 找到秘密的山顶 默认为“ 机密 ” .
  • namespace - 秘密的命名空间。 此路径将为所有获取/ 设置请求做准备 。 默认为".
  • 符号Path - 本地文件路径 。 默认为"/tmp/token" .
  • 选项 - 转到下面的选项 请求库。通过向任何服务或客户端方法传递一个可选的最后参数,可按请求对选项进行覆盖。 这将用于设置 TLS .

挂载对命名空间

挂载是隐藏秘密的地道 默认这是 secret所以,你的所有秘密 将被存储在一个地址,如: http://localhost:8200/secret/<key>。此选项可以按“默认”实例进行不同的配置.

命名空间是此路径上为组织您的秘密而添加的. 您的服务可与其他服务共享一个 Vault 实例 。 命名空间可以成为您的服务名称 。 你的所有秘密都将保存在: http://localhost:8200/secret/<namespace>/<key>。 。 。 .

数据格式

当一个秘密被写到 Vault 时, 您所设置的值将会被这个格式的对象所包裹 :

{
  "value": value
}

当读取带有此表单的 VaultClient 对象的值时, 假设 。 如果没有价值财产,将提出例外。 当执行只获取值键的值时,将返回 。 这允许获取和设定方法在原始值上运行.

示例

import { IHVConfig, VaultClient } from '@creditkarma/vault-client'

const options: IHVConfig = {
    apiVersion: 'v1',
    protocol: 'http',
    destination: 'localhost:8200',
    mount: 'secret',
    namespace: '',
    tokenPath: '/tmp/token',
    requestOptions: {
        headers: {
            host: 'localhost'
        }
    }
}
const client: VaultClient = new VaultClient(options)

// Because we set a namespace this is actually written to 'secret/key'
client.set('key', 'value').then(() => {
    // value successfully written
    client.get<string>('key').then((val: string) => {
        // val = 'value'
    })
})

故障服务

VaultService为原始的Vault HTTP API提供了更直接的访问. 方法参数和方法返回类型符合 HTTP 断层 API。 。 。 .

选项

VaultService 接受 VaultClient 接受的选项的子集:

  • 图像
  • 协议
  • 目标
  • 选项

示例

就像VaultClient所有的方法 返回承诺.

import { IServiceConfig, VaultService } from '@creditkarma/vault-client'

const options: IServiceConfig = {
    apiVersion: 'v1',
    protocol: 'http',
    destination: 'localhost:8200',
    requestOptions: {
        headers: {
            host: 'localhost'
        }
    }
}
const service: VaultService = new VaultService(options)

service.status()
service.init({ secret_shares: 1, secret_threshold: 1 })
service.unseal({ key: 'key', reset: true })
service.read(path, token)
service.write(path, value, token)

运行测试

好东西 npm test 将工作。 然而,运行测试需要运行的Vault服务器. 这是用 插头。如果你没有 docker-compose 在您的系统中, 您将无法运行测试 。 确定你还有插头.

$ npm test

您可以在不进行测试的情况下旋转 Vault 服务器 :

$ npm run docker

这个嵌入物图像在基座Vault图像上方有一点糖. 它暴露了取回信物的终点.

$ curl localhost:8201/client-token

捐款

欲了解更多关于贡献新功能和错误修正的信息,请参见我们 贡献准则。 。 。 . 外部捐助者必须签署捐助者许可证协定

许可证

这个项目的许可证根据 Apache 许可证版本 2.0

版本与发布记录

@creditkarma/vault-client 共发布 32 个版本,首次发布于 2017/12/06;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.0latest2022/06/234 年前
0.5.14-5next2022/06/144 年前
0.5.14-32022/06/094 年前
0.5.14-22022/06/084 年前
0.5.14-12022/06/034 年前
0.5.14-02022/06/024 年前

其他发布通道:next → 0.5.14-5,fix → 0.4.5。

关于 @creditkarma/vault-client 的常见问题

@creditkarma/vault-client 是什么?

用 TypeScript 书写的用于与 Hashicorp Vault 通信的客户端

如何安装 @creditkarma/vault-client?

在项目目录运行 npm install @creditkarma/vault-client,或使用 pnpm add / yarn add / bun add。

@creditkarma/vault-client 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@creditkarma/vault-client 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@creditkarma/vault-client 可以商用吗?

@creditkarma/vault-client 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@creditkarma/vault-client 的下载量有多少?

根据 npm 官方下载统计,@creditkarma/vault-client 在 2026/10/11 – 2026/11/09 这 30 天内被下载 2,592 次,日均约 86 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@creditkarma/vault-client 还在维护吗?

最新版本 1.0.0 发布于 2022/06/23(4 年前);至今共发布 32 个版本,其中过去 12 个月发布了 0 个;首次发布于 2017/12/06。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。