mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-10-15 21:35:34 +00:00
chore(deploy): 健康检查发正确 Host、list 型配置改 JSON、Host 校验收窄
- backend 健康检查改为发送正确的 Host 头(而非放宽 ALLOWED_HOSTS);
配合 ALLOW_LOCALHOST_HOSTS=false,Host: localhost 现在返回 400,容器自检仍 exit 0
- OAUTH_ALLOWED_HOSTS / CORS_STRICT_STARTUP / SCHEDULER_ALLOW_CODE_EXEC 接入 compose 注入
- ⚠️ OAUTH_ALLOWED_HOSTS 是 list[str],必须写 JSON 数组:本次部署曾因写成逗号分隔字符串
导致启动期 SettingsError、容器重启、网关 502(已修复,并在 compose 默认值中固化 JSON 形态)
- DEPLOYMENT.md 新增「配置取值格式」章节记录该坑与排查方法
- AUDIT-REPORT.md 更新修复进展(含复核 t12 驳回与 t13/t14 通过、残余项)
线上验证:四端 200;Host=localhost → 400;健康检查 exit 0;公网 docs/.DS_Store → 403
This commit is contained in:
+16
-1
@@ -108,7 +108,22 @@ ss -tlnp | grep docker-proxy # 确认对外只有 80/443
|
||||
|
||||
---
|
||||
|
||||
## 6. 已知遗留问题
|
||||
## 6. 配置取值格式(踩过的坑)
|
||||
|
||||
`.env` / compose 里的取值格式取决于应用侧字段类型:
|
||||
|
||||
| 类型 | 写法 | 例子 |
|
||||
| --- | --- | --- |
|
||||
| `str`(应用内部再按逗号拆) | 逗号分隔字符串 | `PROD_CORS_ORIGINS=https://a.com,https://b.com` |
|
||||
| `list[str]`(pydantic-settings 直接解析) | **必须 JSON 数组字面量** | `OAUTH_ALLOWED_HOSTS=["service.fastapiadmin.com","*.fastapiadmin.com"]` |
|
||||
|
||||
把 `list[str]` 字段写成逗号分隔字符串会让应用**启动期抛 `SettingsError`**,容器不断重启、网关返回 502。2026-10-04 的部署事故就是这个原因(已修复并在 compose 默认值里固化 JSON 形态)。
|
||||
|
||||
排查方式:`docker logs --tail 40 backend`,若看到
|
||||
`pydantic_settings.exceptions.SettingsError: error parsing value for field "XXX" from source "EnvSettingsSource"`,
|
||||
就是该字段的取值格式与类型不匹配。
|
||||
|
||||
## 7. 已知遗留问题
|
||||
|
||||
安全与质量债的完整清单见 `AUDIT-REPORT.md` 与各分报告(`backend/audit-*.md`、`frontend/audit-*.md`、`docker/audit-deploy.md`)。当前仍待处理的高优先级项:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user