{"id":"c0820","filename":"c0820_vetra_v4.dok.json","weise3_id":"","tip":"phase","naziv":"Genesis V4 Login verifikacija + VETRA migracija HEL→EU","kreator":"claude-opus-4-7 + paralelna CC sesija (V4 backend)","datum":"2026-05-12T09:30:00Z","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"korak":"c0820","tip":"phase","naziv":"Genesis V4 Login verifikacija + VETRA migracija HEL→EU","datum":"2026-05-12T09:30:00Z","autor":"claude-opus-4-7 + paralelna CC sesija (V4 backend)","sto_treba":"Završiti Helsinki decom preduvjete: 1) Verificirati Genesis V4 Login backend kreiran u paralelnoj sesiji, 2) Migrirati VETRA s HEL na EU sa kompletnim DB + Django stackom.","sto_napravljeno":["VERIFICIRANO Genesis V4 Login backend (commit e6d0d66 fenix-v4) — sva 5 endpointa LIVE end-to-end testirana sa PyNaCl Ed25519","  - GET /api/v1/genesis/auth/zdravlje → {ok, modul: genesis-auth, trust: 80}","  - POST /register → vraća weise3_id + JWT (ML-DSA-65 alg — quantum-safe!)","  - POST /challenge → 32-byte challenge base64url, TTL 300s","  - POST /verify → JWT access_token Trust=80 exp 30min","  - POST /recover → F6_EMAIL magic link (privacy-safe response)","End-to-end PyNaCl flow uspio: register → challenge → sign → verify → JWT issued","VETRA Django migracija s HEL (37.27.248.86) na EU (217.160.71.124):","  - PostgreSQL dump 492KB (vetra_db, 31 tabela)","  - Aplikacija tarball 41MB (excl venv, pycache, celerybeat)","  - SSH-pipe transfer HEL→Lokalno→EU (oba paralelno)","  - PostgreSQL: CREATE USER vetra_user + DATABASE vetra_db + pg_restore","  - Root-level files (manage.py, status_api.py, .env) prebačeni odvojeno (tar exclude bug)","  - requirements.txt generiran iz HEL venv freeze (85 paketa)","  - venv kreiran + svi paketi instalirani (Django 4.2.30)","  - manage.py check → System check identified no issues","  - collectstatic → 125 static fajlova","  - chown www-data + chmod 600 .env","  - gunicorn-vetra.service deployed + active (port 8003)","  - BUG FIX: log fajlovi nisu bili writable za www-data — chown popravljen","  - nginx vhost na EU (HTTP-only, čeka SSL cert nakon DNS migracije)","  - Test: curl -H 'Host: vetra.live' http://EU/ → 200 OK 'VETRA Archive' HTML"],"fajlovi_dirnuti_eu":["/var/www/vetra/* (cijela aplikacija)","/var/www/vetra/.env (chmod 600)","/var/www/vetra/requirements.txt (novi — iz HEL pip freeze)","/var/www/vetra/venv/ (novi Python 3.12 venv)","/var/www/vetra/staticfiles/ (collectstatic output)","/etc/systemd/system/gunicorn-vetra.service (novi)","/etc/nginx/sites-available/vetra (novi, HTTP-only)","/etc/nginx/sites-enabled/vetra (symlink)","/var/log/gunicorn-vetra-{access,error}.log (chown www-data)","PostgreSQL: vetra_user + vetra_db kreirani + restored"],"vetra_endpointi_aktivni":"Svi VETRA endpointi rade na EU :8003 (proxied kroz nginx za /static/, /media/, /widget/, /api/v1/scan/, /api/, /)","v4_login_arhitektura":{"backend":"Django na fenix-v4 (paralelna sesija e6d0d66)","jwt_alg":"ML-DSA-65 (NIST FIPS 204 quantum-safe)","trust_score":80,"vs_webauthn_trust":100,"identifikator":"weise3_id (SHA3-256 sa FENIX prefiksom)","challenge_ttl":300,"fluid_recovery_metoda":["F5_QR client-side","F6_EMAIL magic link","F8_BIOMETRIC client-side"]},"helsinki_decom_pending":["DNS vetra.live + www.vetra.live + status.vetra.live → 217.160.71.124 (čeka korisnika)","Po DNS propagaciji: certbot SSL na EU za vetra.live triplet","Onda: ssh genesis-hel 'systemctl stop gunicorn-vetra && systemctl disable gunicorn-vetra'","DNS limit-connect.com (i podsubdomene) → EU + SSL EU","Brsljan ES+EU stabilan 48h test","Final: ssh genesis-hel 'systemctl poweroff' (kad sve potvrdjeno)"],"zakon_status":{"Z0":"OK — VETRA na EU (HEL decom u tijeku)","Z1":"OK — Genesis je ARK, VETRA postoji + samo migriran","Z3":"OK — DB restored s istim podacima","Z11":"OK — security headers + rate limit kopirani iz HEL nginx","Z27":"OK — VETRA modeli imaju weise3 + bunker fields","Z29":"OK — security middleware + nginx headers","Z32":"ovaj entry je sam dokaz"},"tagovi":["vetra-migration","hel-decom","v4-login","phase-d","ml-dsa-65","quantum-safe"]}}