Repository navigation
feat(web): make the house password optional for private LAN consent - #1715
Merged
Merged
Conversation
Signed-off-by: Fredrik Ahlgren <fredrik@sourceful-labs.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
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.
Problem and result
On
v0.150.0-beta.1, “Accept Cloud terms” refused a LAN user until the house password was on. Settings then refused to set the first password from that same LAN page. Fredrik had to use an SSH tunnel to complete the choice.Make the house password optional for consent on the direct private LAN, as it is for Settings and owner pairing. When password protection is on, the existing login dialog authenticates the owner and retries the choice. This covers both Cloud terms and local statistics sharing.
The card now gives a short summary, says that Sourceful can read the Cloud copy, keeps the full sharing and retention text in a disclosure, and shows whether login is needed. A save has a clear receipt. A failed save has one error and allows a retry; a refresh during login cannot remove that error or replace the pending choice.
Scope and safety
This changes who may grant Cloud access. With the house password off, any client that can reach the box directly on a private network, including a private VPN, may accept the terms, enable Cloud or enable statistics. The card states that tradeoff. With protection on, a LAN write still requires the password, an existing login cookie or the configured API token. Owner app sessions keep their role check.
Public clients, public hostnames, forwarding headers, CGNAT clients, cross-site browser requests and non-JSON writes do not gain access. First password setup retains its local-only rule. The PR removes the forced trip through that setup from Cloud consent.
Open PR #1177 owns the System tab, #1694 owns shared dashboard CSS, and #1632 owns ADR 0008. This change keeps the UI in its statistics module and updates the normative Cloud protocol document.
Verification
npm test: 770 passed.go test ./internal/api -run 'Cloud|Statistics|AuthPassword' -count=1: passed.make verify: passed.139c6849, including the Go race detector and full stack.Checklist
The rendered views and a local preview are available in the chat for human UI review. The changeset is
minor. Fredrik approved the described change to LAN consent authority and requested merge in the chat on 17 October 2026. Human UI review may follow on beta under the repository’s review policy.