Round 2 per Sage's notes revs 521 and 523: a repeated Host is 400 before
any check; HEADER with a Host other than NAME is 403 proxy Host refused;
HEAD, x.NAME and --auth-header tests; the README proxy contract lines.
Candidate manifest 17b6d7f6, base 17ea0dbc. 34 of 34 mutants killed;
gate green.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
29 lines
2.4 KiB
Plaintext
29 lines
2.4 KiB
Plaintext
== partial flag set, refused at start
|
|
refused: preview mode needs --public-host, --auth-header and --allow-user together
|
|
exit 2
|
|
Mosaic Console: http://127.0.0.1:34273/
|
|
Board: http://127.0.0.1:9
|
|
Bus: not configured (system config problem (mosaic-config exit 3): mosaic-config: configuration not found: <config>/no-config.json (run scripts/bootstrap.sh to create it))
|
|
Preview: https://mosaic-preview.woltje.com/ through the proxy, signed-in user from x-authentik-uid, read-only
|
|
Ctrl-C stops this server.
|
|
== refusals
|
|
wrong Host, no header 403 {"error":"non-local Host refused"}
|
|
wrong Host, signed in 403 {"error":"proxy Host refused","message":"the proxy must forward Host unchanged"}
|
|
public name with a port 403 {"error":"proxy Host refused","message":"the proxy must forward Host unchanged"}
|
|
wrong Origin 403 {"error":"cross-origin request refused"}
|
|
missing header 401 {"error":"sign-in required"}
|
|
wrong user 401 {"error":"sign-in required"}
|
|
Host rewritten to loopback, wrong user 403 {"error":"proxy Host refused","message":"the proxy must forward Host unchanged"}
|
|
Host rewritten to localhost, right user 403 {"error":"proxy Host refused","message":"the proxy must forward Host unchanged"}
|
|
two Hosts, loopback then the public name 400 {"error":"repeated Host refused"}
|
|
POST /api/seen, signed in 403 {"error":"read-only","message":"the Console preview is read-only"}
|
|
POST /api/reply, signed in 403 {"error":"read-only","message":"the Console preview is read-only"}
|
|
POST /api/reply, loopback Host 403 {"error":"read-only","message":"the Console preview is read-only"}
|
|
== allowed
|
|
GET /healthz, signed in, lowercase header 200 {"ok":true}
|
|
GET /api/config, signed in 200 {"board":"http://127.0.0.1:9"}
|
|
GET / (the page), signed in 200 <!doctype html><html lang="en" data-design="console" data-palette="harbor"><head><meta charset="utf-8"><meta n
|
|
GET /api/bus/inbox, signed in (no bus) 503 {"error":"not-configured","message":"the Console has no bus configured"}
|
|
GET /api/board, signed in (board down) 502 {"error":"Board unreachable or invalid response at http://127.0.0.1:9. Check the board server. No automatic ac
|
|
GET /healthz, loopback, no header 200 {"ok":true}
|