Params
全局自定义参数,供模板通过 p 面访问。在 params.yaml 中定义,也可放在 thurgio.yaml 的 params 顶级节(两者合并)。
值可以是任意 YAML 结构(标量、映射、列表),模板中按路径访问:
# params.yaml
mixed-port: true
dns:
enable: true
mode: fake-ip
format: json
test:
interval: 60
url: https://cp.cloudflare.com/generate_204
mixed-port: {{ p["mixed-port"] }}
dns-mode: {{ p.dns.mode }}
interval: {{ p.test.interval }}
参数面:p 与 hp 的分离
模板中有两个独立的参数面(ADR-081):
| 面 | 来源 | 可变性 |
|---|---|---|
p.* | 配置:params.yaml + /app/admin/p 端点热更新 | 进程生命周期内持久 |
hp.* | 本次 HTTP 请求的查询参数(YAML 解析、点分键嵌套) | 单次请求 |
HTTP 请求的查询参数不会覆盖 p 中的同名值——订阅方无法篡改你的配置参数;需要请求级差异时在模板中显式消费 hp。
热更新
Admin 令牌请求 /app/admin/p?key=value 会把查询参数深度合并进内存中的 params(点分键写入嵌套结构),立即对后续渲染生效,不写回配置文件:
curl "http://localhost:10100/app/admin/p?test.interval=120&token=ADMIN_TOKEN"
example
见上方 YAML 示例;完整参数面语义(解析规则、100 个上限等)见 API 参考。