Echolot
工作区

机密

把密码、令牌和密钥保存在钥匙串而不是工作区文件中,并把它们交给命令行工具和 CI。

机密是一个值保留在你 Mac 钥匙串中的变量。工作区文件里只有它的名称,因此你可以提交并分享工作区,而不会分享你的凭据。密码、令牌、API 密钥,以及任何你不会粘贴到聊天里的内容,都应该用机密。

把变量设为机密

  1. 打开变量表:环境页面、文件夹设置… › 变量,或请求的变量标签页。
  2. 添加变量,或找到它,然后勾选密钥。
  3. 在字段中输入值(字段显示未在这台 Mac 上设置),然后按 ↩ 或点按存储。

字段永远不会再次显示这个值。一旦有了值,它会显示带钥匙图标的存储在钥匙串中。要更改值,请输入一个新值并存储。

使用机密就像使用任何变量一样:{{token}}。

“环境”页面上的工作区变量:token 已标记为密钥,其值字段显示“存储在钥匙串中”

在文件中,机密只有名称和一个标志,没有值:

[[variables]]
name = "token"
secret = true

每个层级都保存自己的值。Staging 环境中的机密 password 和 Production 中的是两个钥匙串项,所以每个环境都可以有自己的密码。

值保存在哪里

值保存在你的登录钥匙串中,每个机密一项,标签为 Echolot secret <name>。它们属于工作区(通过 workspace.toml 中的 ID)以及定义该变量的层级。同一台 Mac 上的命令行工具读取同样的项。

在这台 Mac 上没有值的机密不会回退到其他层级。在你设置一个值之前,请求会显示 the secret {{password}} has no value on this Mac。

Mac App Store 版

App Store 版使用同一个钥匙串。直接下载版或命令行工具创建的项可能会请求一次访问权限;请选择始终允许。

比较两个版本

什么绝不会进入文件

Echolot 不会把下面这些写入工作区文件:

  • 机密变量的值。
  • 响应捕获存储的机密:标记为机密的捕获只会写入钥匙串。在 Alpenglow 中,Auth › Sign in 把 access_token 捕获到机密 {{token}} 中。
  • OAuth 2.0 令牌和 MCP 登录信息。
  • 你用移到钥匙串(见下文)转移的值。

你以纯文本输入的内容仍是纯文本。当认证或代理的密码字段中是字面值而不是变量时,Echolot 会在它下方发出警告:以纯文本形式存储在工作区文件中。 点按移到钥匙串:该值会变成工作区的机密变量,字段中则换成 {{name}}。

在 Echolot 显示或交出已解析请求的任何地方,机密也会被遮盖:预览、快速查看、“变量”面板、历史记录搜索,以及智能体收到的一切内容。生成代码…和拷贝为 cURL 是例外:它们按请求将要发送的样子写出,机密也包含在内。

导入会把凭据移入机密

当你导入 Postman 集合、Insomnia 导出文件或其他文件时,在认证设置和凭据标头中找到的密码、令牌和 API 密钥会变成机密变量。它们的值进入钥匙串,请求中则换成 {{name}}:请求的名称加字段,例如 {{me_password}}。导入报告列出所存储机密的名称,绝不列出值。

写在地址(https://user:pass@…)、查询字符串和正文中的凭据目前不会被移动。导入之后请检查这些位置。

导出会略去值

导出在每种格式中都只写出机密变量的名称,不带值。打开导出内容的人在自己那边设置这些值。

命令行和 CI 中的机密

命令行工具按以下顺序查找机密的值:

  1. 传给 echolot run 的 --secrets 文件:每行 NAME=value。
  2. 环境变量 ECHOLOT_SECRET_<NAME>:名称大写,字母或数字以外的每个字符都变成 _。{{token}} 读取 ECHOLOT_SECRET_TOKEN;{{api-key}} 读取 ECHOLOT_SECRET_API_KEY。
  3. 在 Mac 上,是 App 保存的钥匙串项。
ECHOLOT_SECRET_TOKEN=… echolot run Alpenglow.echolot --folder orders
echolot run Alpenglow.echolot --env staging --secrets staging.secrets

设置了 CI,或设置了 ECHOLOT_KEYCHAIN=0 时,会跳过钥匙串。在 CI 中,请从 CI 的机密存储设置 ECHOLOT_SECRET_… 变量。见 CI。

在环境变量中找到的机密对每个层级都有效:ECHOLOT_SECRET_PASSWORD 会在任何环境中应答 {{password}}。

命令行中的导入会像 App 一样把凭据移入机密。没有钥匙串时,工具会告诉你该设置哪些 ECHOLOT_SECRET_… 变量。

同事第一次打开

克隆了工作区的同事会得到每个机密的名称,但没有任何值。他们的表格显示未在这台 Mac 上设置。他们设置一次自己的值,此后所有人都基于同样的文件、使用各自的凭据工作。见 Git 和团队。

本页内容