Skip to content

fix(startup): PUBLIC_BASE_URL 留空时启动打 WARNING 提示 (#15) - #35

Merged
zj1123581321 merged 2 commits into
masterfrom
card/MediaResolverAPI-public-base-guard-260923
Sep 23, 2026
Merged

zj1123581321 merged 2 commits into
masterfrom
card/MediaResolverAPI-public-base-guard-260923

Conversation

@zj1123581321

Copy link
Copy Markdown
Collaborator

为什么

PUBLIC_BASE_URL 留空时,data.video_url 按请求 Host 推导。2026-09-02 生产上曾推出 http://localhost:8206/...:POST /api/resolve 照常返回 200 与一个看起来合理的 URL,只有下游拉流才失败——静默失效,重装/迁移时极易漏配(issue #15)。

改法

lifespan 里 setup_logging() 之后加一条 fail-open 的 WARNING,字面量 PUBLIC_BASE_URL 未设置 可 grep:

if not (settings.PUBLIC_BASE_URL or "").strip():
    logger.warning(
        "PUBLIC_BASE_URL 未设置,data.video_url 将按请求 Host 推导,跨机调用会拿到不可用地址"
    )

空判定口径与 _public_origin 一致(纯空白视为未设置)。不 fail-fast(客户端直连本服务的部署形态下留空是合法配置),不阻断启动。

实测

场景 结果
留空("" / " ")走真实 TestClient(app) 启动 日志文件里恰好 1 条含该字面量,且 GET / 仍 200
设为 https://api.example.com(负控) 同一路径命中 0 条
红验:注释掉 logger.warning 测试 2 例转红(assert 0 == 1),还原后全绿
全量 uv run --extra dev python -m pytest tests/ -q → 416 passed

影响范围

只多一条启动日志;不新增配置项、不改推导逻辑、不改任何响应结构。

备注

zj1123581321 added 2 commits September 23, 2026 16:24
Agent-Executor: agy
Agent-Model: gemini-3.8-flash-high
Agent-Effort: unknown
Dispatch-Id: dlg-20260923-082221-6ccc70
Task-Id: MediaResolverAPI-20260923-02
Agent-Executor: agy
Agent-Model: gemini-3.8-flash-high
Agent-Effort: unknown
Dispatch-Id: dlg-20260923-082221-6ccc70
Task-Id: MediaResolverAPI-20260923-02
@github-actions

Copy link
Copy Markdown

Required Gate v2 — 状态面板

当前状态:pass · 可合并

当前裁决:code_pass / primary_pass

历史可能不完整:1 个历史重建预算耗尽

Gate 历史(v1;来源为持久化 gate_terminal 制品)

Run Attempt Head 状态 收件人动作
35837313396 1 8cdc20a pass 可合并

历史行按 run_id + run_attempt 去重并只增不删;删除本评论后可由 gate_terminal 制品重建。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant