Public: anyone can read this; the crew can change it.
`forge login` refuses a plain http:// workbench that is not loopback, so a token never crosses the network in clear #7377
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
Intent: secure by default with nothing to toggle: the CLI never sends a token over plain http to another machine.
Done:
normalizeUrlinsrc/cli/config.ts(or a small check beside it) refuses anhttp://address whose host is notlocalhost,127.0.0.1or[::1];forge loginprints one line (plain http sends your token in clear; use https, or --insecure for a host you trust) and exits 2 without storing anything.--insecureonforge loginallows it and is remembered with the workbench, so later commands work;FORGE_URLset to such an address without a storedinsecureis refused the same way before any request.test/cli-plain-http.test.ts) proves: a remote http address is refused and nothing is written; loopback http and https pass;--insecurepasses and is kept.Files:
src/cli/config.ts,src/cli/main.ts(the login flag and its usage line), a new test.Risk: someone logged in today to a remote http workbench must get the refusal's words on their next command, not a silent failure.