{"id":"c0040","filename":"c0040_zakon15_folija_genesis_smart_login.dok.json","weise3_id":"fb584a8b4396475d405d56db95e2b7b2fa9bad49f3f8dd62ff748804a9f2b5b5","tip":"cc.zakon","naziv":"c0040 — ZAKON 15: Obavezna Folija zaštita + Genesis Smart Login","kreator":"cc_sonnet","datum":"2026-05-05T15:00:36.226461+00:00","snippet":"","status":"AKTIVAN","prev_weise3":"","bunker_l":"#8c708b","full":{"tip":"cc.zakon","naziv":"c0040 — ZAKON 15: Obavezna Folija zaštita + Genesis Smart Login","nastao":"2026-05-05T15:00:36.226461+00:00","kreator":"cc_sonnet","prev_chain":"c0039_kompletan_log_sesije_20260505.dok.json","status":"AKTIVAN","commit":"b2309f5","zakon_15_folija":{"naziv":"ZAKON 15 — Obavezna Folija zaštita za svaki auth/security modul (2026-05-05)","tekst":"Svaki modul koji dotiče autentikaciju, kriptografiju ili pristup mora biti zaštićen Folijom.","kako":["folija.watch(modul_name, __file__) na inicijalizaciji","Svaki auth event → Redis event log (genesis:event:{ip})","Anomaly detection: >N fail attemptsa → VATRA alarm Ivan","IP trust registracija: genesis session → bunker:temp_ip:{ip}","Folija membrane prati SHA-256 fajla — tamper = WhatsApp alarm"],"moduli_koji_moraju":["core/middleware/genesis_auth_middleware.py","core/middleware/bunker_gate.py","arhiva/views_pwa.py (GenesisLoginView)","Svaki novi auth view na bilo kojoj domeni"]},"zakon_14_sesija":{"naziv":"ZAKON 14 — Svaka Genesis sesija je dokazivi zapis u chain-u","tekst":"Ed25519 challenge/verify → session_token u Redis → .dok.json sesija zapis u genesis chain.","tier_model":{"native":"Hardware-backed kljuc (FIDO2/WebAuthn) — 30 dana, sve operacije","noble":"Pure JS Ed25519 (noble.js) — 2h, standardne operacije","untrusted":"Bez Ed25519 — 30 min, read-only"}},"genesis_smart_login":{"endpoint":"POST /pub/arhiva/genesis-login/","status_check":"GET /pub/arhiva/genesis-status/","odjava":"POST /pub/arhiva/genesis-logout/","toci":["sati.ink — primarno koristenje","limit-connect.com — komitent arhiva","fina-connect.online — buduci (isti middleware)","no-limit.world — FAZA 5 (pending)"],"ip_level":"genesis login -> bunker:temp_ip:{ip} s TTL=tier_ttl -> BunkerGate propusta IP","folija_events":"genesis:event:{ip} LPUSH — zadnjih 100 eventa po IP, 24h TTL","anomaly":"genesis:login_fail:{ip} INCR — >20 u 10 min -> VATRA alarm"},"debug_kako":{"gledaj_eventove":"redis-cli -n 4 LRANGE genesis:event:{IP} 0 -1","gledaj_sesije":"redis-cli -n 4 KEYS \"genesis:session:*\"","gledaj_failove":"redis-cli -n 4 KEYS \"genesis:login_fail:*\"","gledaj_ip_trust":"redis-cli -n 4 KEYS \"bunker:temp_ip:*\"","format_eventa":"timestamp|outcome|detail (npr: 1746470400|login_ok|noble|3c3d19c...)"},"weise3_id":"fb584a8b4396475d405d56db95e2b7b2fa9bad49f3f8dd62ff748804a9f2b5b5","block_hash":"f53f0e08cd028cacaac250578be87aa35390c8cf803fe8f7c518336cfbad475a"}}