92ee0f9881
gates / gates (push) Successful in 23s
Endpoint-level on demo-hp guest 9201, method stated. The flash key renders the sentence in each language where 0.251.0 showed the raw key; a link an OLD controller minted still shows its prose, in both languages; country names follow the language and the list re-sorts. Hungarian parity measured on the page BODIES, not on a hash: ten pages on 0.252.0, the guest rolled back to 0.251.0, the same ten again, then rolled forward. Six byte-identical; the other four differ only in live state (a clock crossing a minute, an app unhealthy for a moment, and the update-available line, which is true on the old version and false on the new). The first pass had saved only hashes — a hash cannot show WHAT moved — so the before-state was reproduced rather than asserted. Box left on 0.252.0 with its saved language `hu`; every English probe used the ?lang= override, which is not persisted. Provisioned nothing. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
41 lines
2.4 KiB
Bash
41 lines
2.4 KiB
Bash
#!/bin/bash
|
|
# Authenticated endpoint-level i18n probe, run INSIDE guest 9201.
|
|
IP=172.17.0.2:8080
|
|
H="Host: felhom.enkisfelhom.hu"
|
|
PW=$(cat /tmp/.felhompw)
|
|
J=/tmp/pj.txt; rm -f $J
|
|
# 1. pre-auth page: CSRF field + cookie
|
|
curl -s -c $J -H "$H" "http://$IP/login" -o /tmp/lg.html
|
|
CSRF=$(grep -o 'name="_csrf" value="[^"]*"' /tmp/lg.html | head -1 | sed 's/.*value="//;s/"//')
|
|
# 2. sign in, keep the Set-Cookie header ourselves (curl's jar drops felhom_session)
|
|
SESS=$(curl -s -b $J -H "$H" -D - -o /dev/null -X POST "http://$IP/login" \
|
|
--data-urlencode "password=$PW" --data-urlencode "_csrf=$CSRF" \
|
|
| grep -i '^set-cookie: felhom_session' | head -1 | sed 's/[Ss]et-[Cc]ookie: //;s/;.*//')
|
|
if [ -z "$SESS" ]; then echo "LOGIN FAILED (no session cookie)"; exit 1; fi
|
|
a(){ curl -s -H "$H" -H "Cookie: $SESS" --max-time 10 "http://$IP$1"; }
|
|
echo "LOGIN OK"
|
|
for L in hu en; do
|
|
echo "##### lang=$L"
|
|
echo "--- /api/geo/countries : DE, US, AO (name)"
|
|
a "/api/geo/countries?lang=$L" | tr '}' '\n' | grep -E '"(DE|US|AO)"' | sed 's/.*"name":"/ /;s/"$//' | head -3
|
|
echo "--- /api/geo/countries : first 3 in sort order"
|
|
a "/api/geo/countries?lang=$L" | tr '}' '\n' | sed -n '1,3p' | sed 's/.*"name":"/ /;s/"$//'
|
|
echo "--- deploy an ALREADY INSTALLED app (409, no install happens)"
|
|
a "/launcher?lang=$L" > /tmp/lp.html
|
|
MC=$(grep -o 'name="csrf-token" content="[^"]*"' /tmp/lp.html | head -1 | sed 's/.*content="//;s/"//')
|
|
curl -s -H "$H" -H "Cookie: $SESS" -H "X-CSRF-Token: $MC" --max-time 10 -X POST "http://$IP/api/stacks/bentopdf/deploy?lang=$L" \
|
|
-H 'Content-Type: application/json' -d '{"values":{}}' -w " [%{http_code}]" | head -c 400; echo
|
|
echo "--- start an app that needs a missing drive / memory refusal shape"
|
|
curl -s -H "$H" -H "Cookie: $SESS" -H "X-CSRF-Token: $MC" --max-time 10 -X POST "http://$IP/api/stacks/felhom-controller/stop?lang=$L" -w " [%{http_code}]" | head -c 250; echo
|
|
echo "--- /launcher md5 + flash key render"
|
|
a "/launcher?lang=$L" | md5sum
|
|
a "/launcher?flash=flash.share.enabled&lang=$L" | grep -o 'alert-message">[^<]*' | head -1
|
|
a "/launcher?flash=Sikeres+ment%C3%A9s&lang=$L" | grep -o 'alert-message">[^<]*' | head -1
|
|
echo "--- /backups md5, /monitoring md5, /settings md5"
|
|
for P in /backups /monitoring /settings; do echo -n " $P "; a "$P?lang=$L" | md5sum; done
|
|
echo "--- /backups/remote md5"
|
|
a "/backups/remote?lang=$L" | md5sum
|
|
done
|
|
echo "##### hub report language + health warnings"
|
|
a "/api/status" | head -c 200; echo
|