此页面由
docs/values.md自动同步生成。
Values 使用说明
Values 是 Bifrost 的统一变量管理机制,用于在规则和脚本中复用配置内容。
存储位置
Values 默认存储在数据目录下:
~/.bifrost/values/每个 key 对应一个文件,文件内容即变量值。
在规则中引用
规则侧通过在规则文件中定义内嵌值块来引用 Values:先用 ``` 名称 起一个值块,块内即变量内容,再在规则行里用 {名称} 引用。
``` ua.txt
Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X)
```
pattern ua://{ua.txt}内嵌值块同样可用于注入响应体或响应头,例如:
``` mockResponse
{"ec":0,"data":"mocked"}
```
pattern resBody://{mockResponse}``` customHeaders
X-Injected: from-value
```
pattern host://127.0.0.1:3000 resHeaders://{customHeaders}ℹ️ 经实测(bifrost 0.0.96,真实
bifrost start路径):规则里的{名称}既能引用同一规则文件内的内嵌值块,也能引用通过bifrost value add存到~/.bifrost/values/的全局 Values(例如resBody://{myval}会输出该全局 value 的内容)。注意file://协议的 value 会被当作文件路径处理,不能用来回放 value 内容;要把某个 value 作为固定响应体回放,请用resBody://{key}。
更多规则侧细节见:
通过 CLI 管理
bifrost value list
bifrost value show <name>
bifrost value get <name> # show 的别名
bifrost value add <name> <value>
bifrost value set <name> <value> # add 的别名
bifrost value update <name> <value>
bifrost value delete <name>
bifrost value import <file>在脚本中使用
脚本沙箱里通过 ctx.values 暴露 Values:
var token = ctx.values["API_TOKEN"];
if (token) {
request.headers["Authorization"] = "Bearer " + token;
}ℹ️ 经实测(bifrost 0.0.96,真实
bifrost start路径):脚本沙箱的ctx.values会被全局 Values 填充——bifrost value add API_TOKEN ...后,脚本里ctx.values["API_TOKEN"]能取到该值,Object.keys(ctx.values)包含它。上面这段示例可正常工作。(ctx字段:requestId / scriptName / scriptType / phase / values / matchedRules。)
Scripts 侧细节见:scripts.md。