Vault & Secrets
为 Busabase 托管运行时保存 Secrets、Variables、作用域覆盖和可审计访问。
Vault & Secrets
Busabase Cloud Vault 用于保存凭据、token、账号 ID、模型设置、Webhook secret,以及任何 Busabase 托管代码应该从 runtime context 读取、而不是硬编码的配置。

Secrets 和 Variables
Secrets 用来保存敏感值,例如 API key、签名 secret、OAuth token、密码、私有凭据。Secret 默认会被遮罩,只有拥有 Reveal access 的用户显式 reveal 后才能看到明文。
Variables 用来保存不敏感的运行时配置,例如 provider 名称、模型名、默认区域、账号别名、feature flag。
名称必须使用大写字母、数字和下划线,例如 EMAIL_API_KEY、EMAIL_PROVIDER、MODEL_PROVIDER。
Scope 模型
当前 Busabase Cloud UI 支持三种 Vault 作用域:
User defaults 属于你的账号,是 Busabase 代表你执行代码时使用的默认值。
Space overrides 属于一个 workspace,会在这个 Space 内覆盖同名的用户默认值。

API key overrides 属于单个 API key。当请求使用这个 key 认证时,会覆盖同名的 User 和 Space 值。
运行时优先级是:
API key overrides > Space overrides > User defaults例如,把 EMAIL_PROVIDER=resend 设为用户默认值,把 MODEL_PROVIDER=openai 设为某个 Space 的覆盖值,再为两个 API key 分别设置不同的 EMAIL_API_KEY,同一个 email Skill 就能连接两个独立发信账号。
Vault 数据模型也预留了 Base、Agent、Tool 作用域,之后可以继续做更细粒度覆盖。当前 Cloud UI 先开放 User、Space、API key。
配置 Vault 项
- 打开 Account Settings。
- 进入 Vault。
- 选择 User defaults、Space overrides 或 API key overrides。
- 选择 Secrets 或 Variables。
- 填写 name、value、可选 description 和 access 设置。
- 保存这组 Vault。
覆盖值是可选的。如果当前 scope 没有某个名称的值,Busabase 会继续回退到下一层 scope。
Access 权限
每个 Vault 项都有四个显式能力:
Runtime 允许 Busabase 托管执行读取并使用这个值。
Reveal 允许授权用户在 UI 中 reveal 存储的 secret 明文。
Edit 允许授权用户更新或删除这个项。
Share 预留给后续共享和委托流程。
Busabase 会审计 Vault 的创建、更新、删除、reveal 和 runtime read,这样团队可以追踪谁创建了值、谁在运行时使用了值、谁 reveal 过 secret。
运行时行为
Busabase Cloud 会在 session 或 API key 认证通过后,由服务端解析 Vault runtime values。SDK、REST、MCP 客户端不会调用公开 Vault endpoint,也不会直接拿到 secret 明文。
import { getContextVaultRuntimeValue } from "busabase-core/context";
const emailApiKey = getContextVaultRuntimeValue("EMAIL_API_KEY");Session 认证请求会收到 User defaults 和当前 Space overrides。API key 认证请求会收到 User defaults、Space overrides,以及匹配的 API key overrides。
开源版 apps/busabase 使用 single-player Vault:因为没有登录系统,本地 user scope 和本地 Space scope 都是固定的。
API 边界
这里没有公开的 GET /api/v1/vault secret endpoint。Vault 只在 Account Settings 里管理,并只在 Busabase Cloud 服务端运行时消费。
迁移说明
旧运行时配置存储只保留作迁移兼容;等 Vault 迁移确认完成后再考虑 drop 旧表。新的文档、UI、runtime context 和 API contract 都统一使用 Vault & Secrets。