{"id":"c1227","filename":"c1227_korak1_identitet_u_bazi.dok.json","weise3_id":"korak1_identitet_baza_genesis_login_v2_ugradnja","tip":"ugradnja","naziv":"GenesisLogin KORAK 1 — Identitet u bazi (PostgreSQL + Redis)","kreator":"genesis","datum":"2026-06-01","snippet":"","status":"DONE","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"ugradnja","naziv":"GenesisLogin KORAK 1 — Identitet u bazi (PostgreSQL + Redis)","sto_treba":"Zamijeniti in-memory dict i O(n) file scan s trajnom PostgreSQL pohranom i Redis cacheom","faze":[{"naziv":"genesis_identitet tablica kreirana","status":"DONE","detalji":"CREATE TABLE genesis_identitet (javni_kljuc TEXT PRIMARY KEY, weise3_id TEXT, display_name TEXT, kreator TEXT, registriran TIMESTAMPTZ, zadnji_9d JSONB, krunica_hash TEXT) + index na weise3_id"},{"naziv":"services/identitet.py — trostruka pohrana","status":"DONE","detalji":"kreiraj_identitet_dokarh() piše u: 1) genesis_identitet (PostgreSQL, trajno), 2) Redis genesis:identitet:pk:{pub} (7d TTL), 3) disk .dokarh (backwards compat). Disk fallback automatski migrira stare zapise u DB+Redis pri prvom čitanju."},{"naziv":"dohvati_identitet() — O(1) umjesto O(n)","status":"DONE","detalji":"Redoslijed: Redis (O(1)) → genesis_identitet PK (O(1)) → disk glob scan (O(n) fallback za stare zapise). Stari zapisi se automatski migriraju u DB+Redis pri prvom čitanju."},{"naziv":"identitet_postoji() — brza provjera","status":"DONE","detalji":"Redis EXISTS → PG SELECT 1 → disk fallback. Ne dohvaća cijeli dokument ako samo provjera treba."},{"naziv":"krunica_hash na svakom identitetu","status":"DONE","detalji":"DUG2 KH1 kanon: SHA3-256(KH1::KRUNICA::identitet::{javni_kljuc}::FENIX2026). Sprema se i u DB i u Redis dokument."},{"naziv":"20/20 test suite prolazi","status":"DONE","detalji":"genesis_auth_test.py 20/20 — sve staro funkcionira, KORAK 1 transparentan za genesis_auth.py"}],"zakon":["ZAKON 3 (trojna pohrana)","ZAKON 43 (krunica_hash na svakom atomu)","UGRADNJA.md KORAK 1c"],"server":"NEW (31.70.90.84)","verzija":"GenesisLogin v2 KORAK 1","weise3_id":"korak1_identitet_baza_genesis_login_v2_ugradnja","krunica_hash":"KH1::KORAK1::genesis_identitet::postgresql_redis_trojna_pohrana::FENIX2026","datum":"2026-06-01","bunker_seal_id":"6f51aa3a5194d16e8be2a770e4b9c06f","sealed_weise3_id":"c1227_identitet_baza_genesis_login_v2_pecat","sealed_at":"2026-06-11","status":"DONE"}}