fix(infra): bootstrap_sso --dns-only says which zone scope the token is missing
Some checks failed
CI / lint (pull_request) Successful in 31s
CI / lint (push) Successful in 28s
CI / notebooks-smoke (push) Successful in 1m32s
CI / test (push) Failing after 2m39s
CI / notebooks-smoke (pull_request) Successful in 1m35s
Infra CI / notebooks (pull_request) Successful in 1m7s
Infra CI / mc (pull_request) Failing after 34s
CI / test (pull_request) Failing after 2m24s
Infra CI / zotero (pull_request) Successful in 26s
Infra CI / docs (pull_request) Successful in 13s
Infra CI / api (pull_request) Successful in 16s
Infra CI / bcda (pull_request) Successful in 15s
Infra CI / llm (pull_request) Successful in 14s

Running it with the corwins.media-scoped token updated the tunnel (account
scope) and then failed the DNS step with a bare 'Authentication error';
the record needs Zone:DNS:Edit on fhirworx.io specifically.

refs #1139
This commit is contained in:
kert
2026-10-25 14:57:50 -04:00
parent ae9e6f5e67
commit 926acd8f86

View File

@@ -460,6 +460,13 @@ def _ensure_dns(client: httpx.Client) -> None:
if not r.json().get("success"):
err = r.json().get("errors", [{}])[0].get("message", "unknown")
print(f" FAIL: DNS list — {err}")
if "Authentication" in err:
# The tunnel write above only needs Account:Cloudflare Tunnel:Edit;
# this one needs Zone:DNS:Edit *on the fhirworx.io zone*. A token
# scoped to another zone passes the first and fails here.
print(
f" hint: the token must include Zone:DNS:Edit for {DOMAIN} (zone {zone})"
)
return
existing = {rec["name"] for rec in r.json()["result"]}