@earthlink/dotvault

中文文档
0.19.1发布于 2026/11/11MITES Module近 30 天下载 7031

dotvault – synding.env /.npmrc /.gitconfig 和任何跨越机器和CI/CD的配置文件. 无需AWS账户.

中文使用文档
文档目录17 节
  1. 安装
  2. 快开始
  3. 共同工作流程
  4. 所有命令
  5. 输入选项
  6. 拉动选项
  7. 按整个文件
  8. 扫描已承诺的秘密
  9. 退出代码
  10. 项目配置
  11. 认证
  12. 服务标志——仅管理控制台
  13. 无头项目创建( I) dotvault project create (中文(简体) )
  14. 兼容性别名( C) env-sync (中文(简体) )
  15. 链接
  16. 访问
  17. 许可证

@ earthlink/ dotvault

dotvault - 同步 .env 编号 : .npmrc 编号 : .gitconfig 和任意配置文件 计算机和计算机/CD。 无需AWS账户.

npm version license

安装

npm i -g @earthlink/dotvault
# or as a project devDependency
npm i -D @earthlink/dotvault

需要节点20.

升级自 @earthlink/env-sync♪ The env-sync 命令继续工作 作为别名——参见: 兼容性别名 见下文.

快开始

# 1. Create project-config.json (first time, if not already in repo)
dotvault init

# 2. Log in — stores tokens in OS keychain (Keychain / libsecret / Credential Manager)
dotvault login -e [email protected]

# 3. Pull all synced files to local disk
dotvault pull

# 4. (Optional) Inject secrets into a dev server without writing any file
dotvault run -- npm run dev

共同工作流程

工作流程图标
第一次设置dotvault init → dotvault login → dotvault pull
合并已存在的工程( 配置为repo)dotvault login → dotvault pull
本地 dev( 磁盘上没有. env)dotvault run -- npm run dev
CI/CD(服务代号)设定 DOTVAULT_TOKEN=est_… → dotvault pull --env production
审计历史dotvault versions DATABASE_URL
倒回一个秘密dotvault rollback DATABASE_URL --to 4
添加文件以同步dotvault push .npmrc
侦测犯罪秘密dotvault scan .
共享一个全局的密钥dotvault global keys → dotvault global use <KEY>

所有命令

dotvault init                     # create project-config.json
dotvault login                    # email + password auth (Cognito)
dotvault pull                     # write .env / .npmrc etc. to local disk
dotvault run -- <cmd>             # inject secrets into child process (no file written)
dotvault set KEY=value            # set one or more secrets
dotvault delete KEY               # delete a secret
dotvault import .env.production   # bulk-import from a .env file
dotvault versions KEY             # show version history of a key
dotvault rollback KEY --to N      # restore a key to version N
dotvault list                     # list (env, file) inventory for this project
dotvault push .npmrc              # add any file to the sync set
dotvault files                    # list synced files
dotvault scan .                   # detect committed secrets (offline)
dotvault global keys              # list the org's global key-pool inventory
dotvault global set K=v [-E env]  # set a global-pool value (omit -E for the common value)
dotvault global delete K [-E env] # delete a global-pool value
dotvault global use K [--as N]    # bind a global key into this project's pull
dotvault global drop K            # unbind a global key from this project
dotvault global status            # show this project's active global-key bindings
dotvault project create --name X  # create a project (headless — ADR-0018)
dotvault logout                   # remove tokens from keychain
dotvault whoami                   # report active identity (interactive user OR service token)

运行 dotvault <command> --help 每个命令的标记和示例.

输入选项

dotvault init [options]
选项默认说明
-n, --name <name>basename(cwd)项目名称
--api <url>https://api.dotvault.io/v1API 基础 URL
-f, --force—— 说覆盖已存在的 project-config.json

成功输出 :

Created project-config.json (project=my-app). Next: dotvault login && dotvault pull

拉动选项

dotvault pull --project my-app --env staging --file .env.local
选项说明
-p, --project <name>覆盖工程名称 project-config.json (使用此旗帜, 配置文件是可选的 —— 见下文)
-E, --env <env>development | staging | production,或项目已申报的任何自定义嵌入(Settings-Environments,ADR-0024)
-f, --file <file>只拉这个文件

成功输出(每个文件一行,然后是摘要;颜色/进度栏) 仅限TTY:

✓ Wrote 12 keys to .env.local (project=my-app, env=development, file=env.local). Markers preserved.
✔ 1 file synced, 0 excluded, 12 keys total

按整个文件

dotvault push .npmrc [--as config/prod.json] [--env staging]

push 上传整个文件(例如:. .npmrc, (中文(简体) ), kubeconfig一个JSON 服务账户密钥)作为同步文物. 一个后来的平地 dotvault pull 实现每个被推到它的文件 destPath,创建任意 缺少父目录 。 无法写入的文件( 无) 允许,在方法中的一个目录,...)在警告中命名,并且 其他文件仍然被写入.

dotvault run 仅在命令时将所推文件放置 运行并随后移除。 如果文件已经存在 destPath 内容相同(例如: pull这是 继续使用。 如果本地文件不同, 则左边 未触及和 run 打印一个警告.

只有文本文件(UTF-8). push 读取和存储文件为 UTF-8 语句。 一个无效的 UTF-8 — 二进制文件( 图像, 档案, 编译出 blobs)和文本保存在另一个编码中,例如Latin-1或 Shift JIS - 在上传前被否决,同时存在验证错误. 转换 将文件移至 UTF-8, 或 Base64- encode 二进制数据输入文本文件 如果你必须同步它.

尺寸限制:256KiB. 服务器拒绝超过 262,144 的文件 字符数( e)FILE_TOO_LARGE) (中文(简体) ). 256KiB的ASCII纯文本; 有多字节字符的文本在字节中可以较大. 已按下文件 与每一次拉出, 所以秘密,不是大资产,是 预定有效载荷.

扫描已承诺的秘密

dotvault scan .                   # scan a path tree (offline, no auth)

scan 沿着给定的路径走( 滑行) node_modules),旗帜 高度自信秘密(AWS密钥、私人密钥块、GitHub PATs、, dotvault service service services)并编辑其输出中的匹配值. 退出代码为 1个 当任何发现被报告时, 6个 当一个名称 顶级路径不存在( u)SCAN_PATH_NOT_FOUND, (中文(简体) ), 0 个 当 树是干净的.

已知的限制(普通任务). 这个 generic-assignment 规则只引用了16+字符的正文(例如:. password = "supersecretvalue123") (中文(简体) ). 故意这样做的 没有 旗帜 "${VAR}" 插值引用(GitHub #254),为了避免噪音,不 旗帜短或未引用的值, 如平原 PASSWORD=value 线条在 (单位:千美元) .env 文档. scan 是个秘密的绊线,不是详尽无遗的 linter——将干净的结果作为"没有明显的高通密", 不是保证.

退出代码

退出含义
0 个成绩
1个请求不当,或 scan 发现了可能的秘密
2个网络出错( E)NETWORK_ERROR——API无法到达;可以安全重试
3个未登录、会话过期或证书错误 / MFA 代码
页:1拒绝许可( E)PERMISSION_DENIED(中文(简体) )
页:1在服务器上找不到的工程或秘密( E)PROJECT_NOT_FOUND(中文(简体) )
6个无效在此机上的输入( E)VALIDATION_ERROR, (中文(简体) ), SCAN_PATH_NOT_FOUND(中文(简体) )
第7条rotate 冲突(409起来自旋转路线,例如已经在飞行中的RUN)
99 (韩语)意外错误,包括其它服务器响应(例如413,429,5xx)

dotvault run 退出时使用孩子命令的退出代码 (127 当 命令无法启动 .

项目配置

CLI读取 project-config.json 在工作目录根中(由 dotvault init页:1.

有明确的 -p, --project <name> 文件为 选项 (ADR-0035): (英语) 每个工程范围的命令 (pull, (中文(简体) ), run, (中文(简体) ), list, (中文(简体) ), set, (中文(简体) ), push, (中文(简体) ), files, (...) (中文(简体) ) 然后从任意目录中工作。 没有配置 API URL 返回到 DOTVAULT_API_URL - 众所周知的缺省,内脏又回到 --env → DOTVAULT_ENV编号 :APP_ENV → development命令 (单位:千美元)set (例如)要求明确 --file没有 --project 配置 需要保留 —— 将目录固定在项目上 :

{
  "name": "my-app",
  "setup": {
    "bootstrap": {
      "proxy": {
        "apiUrl": "https://api.dotvault.io/v1"
      }
    },
    "envSync": {
      "enabled": true,
      "files": [".env"],
      "defaultEnv": "development"
    }
  }
}

将此文件提交您的仓库—— 它不包含任何秘密 。 这个 apiUrl 字段是唯一必须匹配主机平台的值.

认证

用于每次引用的CLI(适用于 pull, (中文(简体) ), run, (中文(简体) ), set, (中文(简体) ), delete, (中文(简体) ), import, (中文(简体) ), versions, (中文(简体) ), rollback, (中文(简体) ), list, (中文(简体) ), push, (中文(简体) ), files, (中文(简体) ), whoami:

  1. DOTVAULT_TOKEN 环境变量(或遗产) ENV_SYNC_TOKEN(b) —— est_… 服务标志(CI/CD/Lambda)
  2. OS 键链——由 dotvault login (交互式用户)

dotvault whoami 将会在不进行网络呼叫的情况下告诉你哪个模式是活动的 :

$ DOTVAULT_TOKEN=est_ci_secret_abcdefghij dotvault whoami
Service token (DOTVAULT_TOKEN=est_ci_secre…) — CI / Lambda mode

$ dotvault whoami
[email protected] (session valid until 2027-10-24)

服务标志——仅管理控制台

服务信使( O)est_…)在管理员控制台中创建、列出并被撤销: app.dotvault.io/admin/托盘。这个秘密 显示一次——立即保存.

dotvault token list | create | revoke 在v0.15.6中被删除: 符号 API 只接受管理员控制器会话(拒绝CLI登录),所以 命令总是失败 PERMISSION_DENIED他们现在只打印 控制台 URL 并退出 1 .

无头项目创建( I)dotvault project create(中文(简体) )

创建一个没有管理员网络控制台的工程——让克洛德完成的作品 代码/CI载入无人驾驶的回放(ADR-0018)。 薄荷a provisioner 曾经, 然后创建没有交互式登录的工程 :

# one-time (org admin): create a `provisioner` token in the admin console
# (https://app.dotvault.io/admin/tokens) — it creates projects, cannot read or
# write any secret, and cannot mint tokens

# thereafter (headless): org is taken from the token, so --org is optional
DOTVAULT_ADMIN_TOKEN=est_… dotvault project create --name myapp

全权证书 project create数字 : DOTVAULT_ADMIN_TOKEN (或遗产) ENV_SYNC_ADMIN_TOKEN页:1 DOTVAULT_TOKEN (或遗产) ENV_SYNC_TOKENA级 dotvault login 会话不能 创建工程——没有提供符符,在管理控制台中创建. 见 Claude 代码登入运行簿。 。 。 .

兼容性别名( C)env-sync(中文(简体) )

软件包仍然安装 env-sync 二进制并列 dotvault ——每个 命令在两个名称下都相同。 通过 env-sync 打印一行标准通知:

env-sync is now dotvault — the env-sync command keeps working as an alias.

遗产 ENV_SYNC_* 环境变量(ENV_SYNC_TOKEN, (中文(简体) ), ENV_SYNC_ADMIN_TOKEN, (中文(简体) ), ENV_SYNC_API_URL当 相应的 DOTVAULT_* 变量未设置 – 没有强制 移民期限.

访问

Lambda代理后端由EarthLink Network运营. 在操作员的用户池中如果没有一个认知账户,你就不能获取秘密——这个包是故意在npm上分配的,但在业务上是私人的.

许可证

麻省理工学院

版本与发布记录

@earthlink/dotvault 共发布 21 个版本,首次发布于 2026/08/09;过去 12 个月发布了 21 个版本。

版本发布日期距今
0.19.1latest2026/11/112 天前
0.19.02026/11/112 天前
0.18.12026/11/058 天前
0.18.02026/11/058 天前
0.17.02026/11/0310 天前
0.16.02026/10/2519 天前

关于 @earthlink/dotvault 的常见问题

@earthlink/dotvault 是什么?

dotvault – synding.env /.npmrc /.gitconfig 和任何跨越机器和CI/CD的配置文件. 无需AWS账户.

如何安装 @earthlink/dotvault?

在项目目录运行 npm install @earthlink/dotvault,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dotvault、env-sync,可以用 npx dotvault 直接运行。

@earthlink/dotvault 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/earthlink__dotvault 是否存在。

@earthlink/dotvault 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@earthlink/dotvault 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.9.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@earthlink/dotvault 可以商用吗?

@earthlink/dotvault 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@earthlink/dotvault 的下载量有多少?

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

@earthlink/dotvault 还在维护吗?

最新版本 0.19.1 发布于 2026/11/11(2 天前);至今共发布 21 个版本,其中过去 12 个月发布了 21 个;首次发布于 2026/08/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。