diff --git a/wrangler.toml b/wrangler.toml index ad0a509..df8f4b3 100644 --- a/wrangler.toml +++ b/wrangler.toml @@ -10,15 +10,29 @@ workers_dev = true [vars] ENVIRONMENT = "development" -# 基本盤 arcrun/kbdb API 網址(leo 2026-06-14:做成可設定,先留空)。 -# 部署前用 `wrangler secret put` 或在此填入,例如 https://arcrun-kbdb..workers.dev -KBDB_BASE_URL = "" +# 基本盤 arcrun/kbdb API 網址:務必只透過 `wrangler secret put KBDB_BASE_URL` 設定。 +# 2026-07-03 補跑實測發現的坑:若這裡也宣告 KBDB_BASE_URL(哪怕留空字串), +# `wrangler deploy` 會用這個 [vars] 值覆蓋掉已存在的 remote secret(vars 優先權 > secret), +# 導致部署後 KBDB_BASE_URL 被打回空字串、插件連不到基本盤。故此鍵不可出現在 [vars]。 [alias] "zod/v3" = "zod" "zod/v4" = "zod" "zod/v4-mini" = "zod" -[[routes]] -pattern = "kbdb-graph.finally.click" -custom_domain = true +# 2026-07-03 補跑實測發現的坑:workers.dev 是共享 zone,Worker 直接 fetch() +# 另一個 *.workers.dev Worker 會被 CF 擋(error code 1042,loop-prevention)。 +# self-hosted 帳號通常沒自訂域名可繞,正規解法 = Service Binding:CF 內部直連, +# 不經公開網路、不受 1042 影響。KBDB_BASE_URL secret 仍保留(可讀性/未來自訂域名時 fallback), +# 但實際讀寫走這個 binding(見 src/lib/kbdb-client.ts / makeKbdbClient)。 +[[services]] +binding = "KBDB_BASE_SVC" +service = "arcrun-kbdb" + +# 2026-07-03 補跑實測:custom_domain "kbdb-graph.finally.click" 這個 zone +# 不在 leo21c 帳號下(CF API GET /zones?name=finally.click 回空), +# self-hosted 到 leo21c 時此路由會部署失敗(但不影響 workers.dev route 的部署本身)。 +# 註解掉以让 self-hosted 用戶乾淨部署到預設 workers.dev;有自訂域名需求者自行改回。 +# [[routes]] +# pattern = "kbdb-graph.finally.click" +# custom_domain = true