Files
patbond-ai/.env.sample
T
lixi 4762358f54
CI / ai-gates (push) Failing after 29s
fix(security): 凭证扫描放行依赖注入传参 + 四仓口径更正
`api_key=volcengine.api_key` 这类**依赖注入传参**被 KEY-ASSIGN 判为疑似凭证。
这是规则的真缺口而非代码问题:行里没有任何秘密,而做 DI 的代码到处都是这种
写法——绕过一次就得在每个调用点绕过,那等于把规则废掉。故改规则。

新增 ALLOW_REFERENCE,刻意收得很紧以免开后门:
- 值必须是**未加引号**的小写起首标识符引用(真密钥要么带引号,要么不是标识符形状)
- 只允许**恰好一个点且随即行尾**
- 连字符不在字符集内

对抗性夹具验证(三真三假):
- 拦下 `api_key = "sk-T3Blbk…"`(OpenAI 形态)
- 拦下 `secret_key: "AKID…"`(腾讯云形态)
- 拦下 `auth_token=eyJ….eyJ….Sfl…`(**三段式 JWT——两个点,故不落进放行**)
- 放行 `api_key=lowercase.reference` / `api_key = settings.api_key` / `api_token: config.authToken`
原 5 形态泄漏夹具复验仍 8 条命中,一条不少。

另更正口径:脚本头与 git-workflow.md 仍写「三仓同构」,实际已是四仓——
patbond-ai 是唯一持有 AI 服务商凭证的仓,漏同步它风险最大。四仓 md5 已一致
(4945940093b4b8413b7d3eec8bf6a5ec),四仓 --all 全绿。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-20 12:18:18 +08:00

33 lines
1.8 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# patbond-ai 配置样例。复制为 .env 后填入实际值——.env 已被 gitignore。
#
# 凭证纪律(ADR-021):真实密钥只允许存在于被忽略的文件中,本样例只放占位值。
# 被拦下时的第一动作是去服务商控制台轮换/禁用该密钥,然后才是清理提交。
# ---- 火山方舟(Ark)----
# 密钥无默认值。缺失时该适配器不装配,服务仍可启动并提供健康检查。
ARK_API_KEY=your-ark-api-key
# 北京区官方地址,一般无需改。
# ARK_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
# 单次 HTTP 往返超时(秒)。**不是生成耗时**——提交接口是异步的(只入队即返回),
# 调大成「等出图」会重新引入长连接占用与计费歧义。
# ARK_TIMEOUT_SEC=10
# 视频模型 ID,仅作兜底。正常路径由 Java 侧传入任务行冻结的模型快照——
# 适配层不自行选模型,否则任务记录与实际调用会不一致、事后无法对账。
ARK_VIDEO_MODEL=
# 厂商 execution_expires_after(秒),区间 [3600, 259200]。
# 默认取下限 1 小时:厂商默认 48 小时对交互式应用过长,被放弃的任务会挂两天。
# ARK_TASK_EXPIRY_SEC=3600
# ---- 服务身份 JWT(ADR-023 §5)----
# 与 patbond-creation 持有的私钥配对的 RS256 公钥。注意这是一对**独立于用户
# token 的**密钥:现有 JwtVerifier 只验签名、不校验 aud/iss,复用同一密钥对会
# 让服务票被四个 Java 模块当成合法用户 token 接受。
PATBOND_SERVICE_JWT_PUBLIC_KEY=
# PATBOND_SERVICE_JWT_ISSUER=patbond-api
# audience 必须强制校验,否则独立密钥对失去意义。
# PATBOND_SERVICE_JWT_AUDIENCE=patbond-ai
# PATBOND_SERVICE_JWT_TYPE=service
# ---- 其他 ----
# PATBOND_AI_LOG_LEVEL=INFO