{"id":"c0823","filename":"c0823_viewer_global.dok.json","weise3_id":"","tip":"adr","naziv":"ARHITEKTONSKA ODLUKA — Genesis Login = nositelj identiteta za sve .dokarh + PDF (Z39)","kreator":"claude-opus-4-7 + Ivan","datum":"2026-05-12T10:45:00Z","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"korak":"c0823","tip":"adr","naziv":"ARHITEKTONSKA ODLUKA — Genesis Login = nositelj identiteta za sve .dokarh + PDF (Z39)","datum":"2026-05-12T10:45:00Z","autor":"claude-opus-4-7 + Ivan","sto_treba":"Donijeti i implementirati arhitektonsku odluku: Genesis Login (Ed25519 + ML-DSA-65 JWT) postaje univerzalni nositelj identiteta za otvaranje SVIH .dokarh + PDF dokumenata. Cilj — globalno dostupni 'ljudski pogled' na bilo koji dokument u sustavu (BON, faktura, otpremnica, vaučer, dokaz...).","odluka":"Genesis Login je centralna identifikacija. /view/{weise3_id} je univerzalni viewer dostupan na SVIM domenama (Spain proxy + EU + DE proxy).","sto_napravljeno":["Kreiran /var/www/genesis/api/viewer.py (370 lin) — univerzalni HTML viewer za bilo koji EntityORM dokument","Endpoint: GET /view/{weise3_id} → renderira:","  - Document tip + naziv + WeisE3 ID + status badges","  - Sadržaj dokumenta (key-value payload table)","  - PDF preview embedded (iframe) ako je BON ili PDF dokument","  - QR kod za mobilno otvaranje","  - Krunica chain info (blok_id, kreator, BunkerSeal, kreirano)","  - Genesis identitet card s linkom na /login/?redirect=/view/{w3}","  - Globalni footer s linkovima na sve fasade","Endpoint: GET /view → kratka landing stranica sa input poljem za WeisE3 ID","Deploy na EU + Spain (oba imaju /var/www/genesis/api/viewer.py)","Sudac middleware whitelist: /view/ dodan u _PRESKOCI_PREFIKS na oba","Bon modul ranije deployed na oba (EU + Spain), endpointi /api/v1/bon/* identični","evalidator.eu / → 302 /login/ (root redirect dodan)","nginx /view/ proxy dodan na: limit-connect.com, no-limit.world, v4.limit-connect.com (Spain) + digigraf.online (EU)","Verifikacija GLOBAL test — 5/6 domena prikazuju viewer ispravno"],"fajlovi_dirnuti":["/var/www/genesis/api/viewer.py (EU + ES — novi 370 lin)","/var/www/genesis/main.py (EU + ES — register viewer_router)","/var/www/genesis/services/sudac_middleware.py (EU + ES — /view/ + /api/v1/bon/ u PRESKOCI)","/etc/nginx/sites-available/genesis-spain (ES — /view/ + /v/ + root redirect za evalidator + limit-connect + no-limit)","/etc/nginx/sites-available/digigraf (EU — /view/ proxy)"],"globalni_test_rezultati":{"limit-connect.com":"200 OK, viewer HTML","evalidator.eu":"200 OK, viewer HTML + root redirect /login/","no-limit.world":"200 OK, viewer HTML","v4.limit-connect.com":"200 OK, viewer HTML","digigraf.online":"200 OK, viewer HTML (EU backend)","sati.ink":"404 — DE nema deploy (TBD: proxy → EU ili lokalan deploy)"},"arhitektura_zakon_39_dopuna":{"naziv_zakona":"ZAKON 39 — BON + Universal Viewer + Genesis Login Identity Carrier","principi":["1. Svaki .dokarh dokument otvara se kroz /view/{weise3_id} — globalno","2. Genesis Login (Ed25519 keypair u browseru) = jedinstveni identitet za sve dokumente","3. Public dokumenti otvaraju se bez login-a (chain je istina)","4. Restricted dokumenti zahtijevaju Genesis Login challenge/verify potpis","5. Audit trail svakog pogleda u Krunici (kroz arhiva_v2 /audit endpoint)","6. PDF preview embedded — koristi pdf_s_odjelo (Z16 ODJELO) za ZUGFeRD-style attached .dokarh JSON","7. QR kod automatski na svakom pogledu — mobile-first otvaranje"],"ne_zahtijeva_login":["Tiskani BON (javan)","Otpremnica (javna meta-data, sadržaj može biti restricted)","VETRA arhiva dokumenti označeni public","Bilo koji EntityORM s payload.public=true"],"zahtijeva_login":["Privatni dokumenti (medical, financial, personal)","Restricted s payload.public=false","Audit trail viewer (tko gledao kada — samo authenticated)","Tenant-specific dokumenti"]},"v4_login_endpointi_potvrdjeni":["GET  /api/v1/genesis/auth/zdravlje","POST /api/v1/genesis/auth/register (V4 fenix-v4)","POST /api/v1/genesis/auth/registracija (ES Genesis FastAPI — duplicate email kreira novi identity)","POST /api/v1/genesis/auth/challenge","POST /api/v1/genesis/auth/verify","POST /api/v1/genesis/auth/recover (V4) i /fluid/obnovi (ES)","POST /api/v1/genesis/auth/biom/auth/options + /verify (WebAuthn FLUID L9)"],"limit_globalne_dostupnosti":"EntityORM podaci nisu replicirani Spain ↔ EU. BON izdan na X serveru vidi se SAMO na X domeni. Long-term: Bršljan PULL sync mora replicirati EntityORM, ne samo .dok.json. Short-term: corp izdaje BON na onom serveru koji odgovara ciljnoj domeni za prikaz.","todo_sljedeca_iteracija":["Bršljan EntityORM sync (Spain ↔ EU) — kritički za globalnu dostupnost","sati.ink /view/ proxy → EU (DE Plesk nginx update)","Login state na viewer-u (prikaz username + 'moji dokumenti' link)","Restricted dokumenti — auth gate (challenge/verify pre rendering payload)","Audit trail UI — viewer prikazuje 'tko gledao kada' (postojeći /api/v1/arhiva/audit)","OpenGraph meta tags na viewer-u (za WhatsApp/FB preview kad se share-a)","PDF download tracking (Krunica entry pri svakom download-u)"],"zakon_status":{"Z1":"OK — koristi postojeću infrastrukturu (EntityORM, qr_gen, archive endpoints)","Z11":"OK — sudac whitelist /view/ za public, restricted endpoints kroz auth","Z16":"OK — ODJELO koncept (PDF + .dokarh JSON) implementiran u viewer iframe","Z26":"OK — HTML template Pydantic-free za maksimum kompatibilnost","Z32":"ovaj entry je sam dokaz","Z37":"OK — BunkerSeal indikator vidljiv u viewer-u","Z39":"DOPUNA — viewer dio Z39 BON + Login sustava"},"tagovi":["adr","viewer","global-access","z39-dopuna","dokarh-universal","genesis-login-identity"]}}