2.4 KiB
2.4 KiB
dsh-credentials-local
English | 中文
只读凭据提供方,包含两个由外部管理的来源:
| 层 | 优先级 |
|---|---|
| 活跃进程环境 | 点名的值非空时始终优先 |
$DSH_HOME/.env 文档 |
其余情况 |
环境优先,因为启动时覆盖(DEEPSEEK_API_KEY=… dsh、CI 机密或预先设置好环境的 shell)代表操作者对该进程的意图。提供方不会写入任何一个来源。
配置
| 字段 | 默认值 | 含义 |
|---|---|---|
path |
<harness home>/.env |
凭据文档位置。 |
dshHome |
$DSH_HOME 或 ~/.dsh |
path 缺省时使用的 harness home。 |
解析
每次调用 resolve(ref) 时,提供方先读取 process.env[ref]。若该值不存在或为空,提供方再读取 dotenv 文档并以 dotenv 解析;文件不存在、键不存在或值为空时返回 undefined,其他文件错误则使该操作失败。实现不使用 watcher 或缓存,因此外部编辑无需经过提供方生命周期或变更 API,即可在下一次解析时生效。
提供方接受 dotenv 的解析语义,包括最后一次赋值优先。它既不创建文档,也不控制其权限;两者均归操作者或外部凭据管理接口所有。
安全边界
harness 不会向模型暴露解析后的文档路径,也不会把文件载入进程环境(见 app-boot 的个人配置)。这是审慎,不是隔离:工具以同一 OS 用户身份运行,可以读取该用户权限允许的任何文件。必须让提供方密钥远离自身 agent(智能体)的部署,需要采用由这些工具进程无法读取的存储支撑的提供方。
Model Experience
经由消费它的 LLM(大语言模型)适配器间接生效:解析出的值为适配器的提供方请求授权,每个模型可见面都归适配器所有。
KV Cache effect
无直接失效;凭据绝不进入请求前缀。
Known Limitations and Deferred Work
- 修改由外部完成:请编辑 dotenv 文档、启动环境或上游机密存储;该提供方刻意不提供写入 API。
- 每次回退到文件都会执行 I/O:实现选择小而始终读取当前值的路径,不引入 watcher、缓存和失效生命周期。
- 同一 OS 用户的进程可以读取该文档:文件权限无法将机密与以同一用户身份运行的模型调用工具隔离。