docs: explain the remote-access error in user terms - #1000
Merged
Conversation
Co-authored-by: HuggeK <48095810+HuggeK@users.noreply.github.com>
miravoss26
reviewed
Aug 30, 2026
miravoss26
left a comment
Contributor
There was a problem hiding this comment.
Docs-only clarification for the "remote access to protected API routes is disabled" error, added to operations.md and all 5 setup-guide locales (de/en/es/fr/sv).
- Content matches the actual locality rules (browser address bar + connection origin, both must be local) — consistent across all 5 language versions, no contradictions or drift between translations.
- No code touched, nothing to break.
Safe to merge from my read.
frahlg
approved these changes
Sep 3, 2026
frahlg
left a comment
Member
There was a problem hiding this comment.
Checked against isLocalAuthority / isLocalClient in go/internal/api/security.go on master. The two rules, the no-dot guard (v2.2.1 / #952 / 5adda2f), .lan/.fritz.box exclusion, Tailscale 100.64/10 (not RFC1918, so IsPrivate is false), and "?token= does nothing" all match the code. The UI has no Bearer writer and no token query-param reader.
The quoted error string is exact, so search finds it. Setup-guide bullets in all five locales point at the same subsection.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Community users hitting
remote access to protected API routes is disabled; configure FTW_API_TOKEN or use a local addresscurrently have nothing to read: the string appears in the update dialog and settings with no link,docs/operations.mdnever quotes it, and the setup guide doesn't mention it. The confusion is predictable — the check is about the URL and source address, not the network, so people standing next to the Pi don't understand why they are "remote".This adds:
docs/operations.mdunder LAN and API access that quotes the message verbatim (so search finds it), states the two locality rules in user terms, and lists the common LAN traps: dot-free hostnames (not local since v2.2.1 / fix(api): stop treating no-dot hosts as local #952 — an address that worked before an update stops working), router names likepi.lan/ftw.fritz.box, Tailscale (100.x,*.ts.net), global-IPv6 resolution, and public reverse-proxy/HA-ingress URLs. It also says explicitly that the built-in UI never sends the token and that?token=...in the URL does nothing.How this was verified against the code
isLocalAuthority/isLocalClientingo/internal/api/security.goon current master, including the fix(api): stop treating no-dot hosts as local #952 change that removed dot-free names from the local list (DNS-rebinding guard).Authorization: Bearerwriter and notokenquery-param reader anywhere underweb/(the tip circulating among users, appending?token=...to the URL, is a placebo — it "works" only when the address is a private IP).myhost:8080bookmark broke after updating past v2.2.1; the direct private IP worked.Docs-only change, so no changeset per the auto-exemption.
🤖 Generated with Claude Code
https://claude.ai/code/session_01JXoRP5AK9zCFxzB2N2Th9V