70a64e3709
Freeze the running offline FUT backend into version control as fifa17-recon/docker/fifa17-python/ - declarative and rebuildable from a fresh checkout: * OPENFUT_BIND / OPENFUT_ADVERTISE client/server split in the responders (lsx, blaze, roster, utas, pow) + entrypoint.sh; OPENFUT_ADVERTISE is required for remote mode (compose and entrypoint fail without it) * docker-compose.yml reproducing the frozen baseline container exactly (env, ports incl. the 8085->8080 POW-content remap, /state bind, restart) * .env.example / .env for site config - the LAN IP is never hardcoded in source * tools/ + data/ staged from openfut-fut-backend:python-baseline-2026-08-10, verified byte-identical to the running container at freeze time * client_arm.sh (the 105 client-side arming counterpart) * Dockerfile bakes /app/SHA256SUMS.txt so any image is self-identifying * docs/BASELINE-python-2026-08-10.md: frozen image/container/hash record, restore instructions and rebuild-equivalence procedure Secrets (redir key/cert, .env) and runtime state (docker/state) stay gitignored. The live container is untouched pending the .105 launcher audit.
1 line
2.4 KiB
JSON
1 line
2.4 KiB
JSON
{"table":"physio","source":"FIFA17.exe resident database (tools/db_dump.py)","rowcount":2,"rowsize_bytes":52,"rows_emitted":2,"rowblock":"0x7bb1788","rowblock_bytes":0,"descriptor":"0x427565b8","schema":[{"name":"firstname","bit":0,"width":152,"kind":"string","min":0,"max":0,"storage":"inline-string"},{"name":"surname","bit":152,"width":152,"kind":"string","min":0,"max":0,"storage":"inline-string"},{"name":"haircolorcode","bit":304,"width":4,"kind":"int","min":0,"max":15,"storage":"int"},{"name":"facialhairtypecode","bit":308,"width":3,"kind":"int","min":0,"max":6,"storage":"int"},{"name":"hairtypecode","bit":311,"width":10,"kind":"int","min":0,"max":1023,"storage":"int"},{"name":"headtypecode","bit":321,"width":14,"kind":"int","min":0,"max":16000,"storage":"int"},{"name":"birthdate","bit":335,"width":20,"kind":"date","min":0,"max":1048575,"storage":"int"},{"name":"gender","bit":355,"width":1,"kind":"int","min":0,"max":1,"storage":"int"},{"name":"eyebrowcode","bit":356,"width":4,"kind":"int","min":0,"max":15,"storage":"int"},{"name":"eyecolorcode","bit":360,"width":4,"kind":"int","min":1,"max":16,"storage":"int"},{"name":"physioid","bit":364,"width":14,"kind":"int","min":0,"max":14000,"storage":"int"},{"name":"headclasscode","bit":378,"width":2,"kind":"int","min":1,"max":3,"storage":"int"},{"name":"haireffecttypecode","bit":380,"width":3,"kind":"int","min":0,"max":6,"storage":"int"},{"name":"skintonecode","bit":383,"width":4,"kind":"int","min":1,"max":15,"storage":"int"},{"name":"nationalitycode","bit":387,"width":12,"kind":"int","min":0,"max":3000,"storage":"int"},{"name":"bodytypecode","bit":399,"width":2,"kind":"int","min":0,"max":3,"storage":"int"},{"name":"facialhaircolorcode","bit":401,"width":4,"kind":"int","min":0,"max":11,"storage":"int"}],"rows":[{"firstname":"FakeFirstname","surname":"FakeSurname","haircolorcode":1,"facialhairtypecode":0,"hairtypecode":1,"headtypecode":1,"birthdate":139236,"gender":0,"eyebrowcode":0,"eyecolorcode":1,"physioid":1,"headclasscode":1,"haireffecttypecode":0,"skintonecode":1,"nationalitycode":0,"bodytypecode":0,"facialhaircolorcode":1},{"firstname":"FakeFirstname2","surname":"FakeSurname2","haircolorcode":1,"facialhairtypecode":0,"hairtypecode":1,"headtypecode":1,"birthdate":139602,"gender":0,"eyebrowcode":0,"eyecolorcode":1,"physioid":2,"headclasscode":1,"haireffecttypecode":0,"skintonecode":1,"nationalitycode":0,"bodytypecode":0,"facialhaircolorcode":1}]} |