← DokArh Portal
ARHITEKTURA_PLAN

GenesisKanal — Poslovni chat sam sebi dovoljan

Kreator: CC + Ivan Datum: 2026-05-24 Status: PLAN — prije realizacije
WeisE3™ ID: c1139
tipARHITEKTURA_PLAN
statusPLAN — prije realizacije
kontekstatom_adresiran.py je spreman (post-kvantna grupna enkripcija, BELA princip). Sada gradimo GenesisKanal — sloj koji veže sobe + poruke + atome + Brsljani sync. Nema Slacka, Teamsa, ni jednog tudeg alata.
nacel a[ "ZAKON 41 — samo nasi resursi (kyber-py = open-source koji hostamo, WebCrypto = W3C native)", "ZAKON 17 — WebSocket je klijent-server (OK), Brsljani je server-server pull (OK, ne krsi ZAKON 17)", "ZAKON 2 — svaki dogadjaj u lancu (soba kreirana, poruka poslana = dokaz u chainu)", "ZAKON 3 — trojna pohrana: krunica + dvorac + brsljani", "BELA princip — neovlasteni vidi matematicku sjenku, ne gresku" ]
arhitektura_cvorovi{ "backend": "genesis FastAPI (EU server, :8010) — sobe, poruke, kyber profili", "realtime": "WebSocket na genesis — delivery za online clanove", "persistence": "Brsljani P2P pull svakih 30s — offline clanovi, multi-node replikacija", "kljucevi_javni": "genesis PostgreSQL — samo kyber_pk (javni kljuc)", "kljucevi_privatni": "iskljucivo na klijentu — IndexedDB + WebCrypto AES-GCM enkriptiran" }
modeli{ "KanalSoba": { "soba_id": "WeisE3 hash (content-adresa od naziv+kreator+ts)", "naziv": "ime sobe (max 120 znakova)", "tip": "firma | tim | bilateralni | javni_kanal", "kreator_wid": "weise3_id kreatora", "clanovi": "JSON lista {clan_id, kyber_pk_hex, dodan_ts}", "genesis_pecat": "ML-DSA potpis kreatora — dokaz postojanja", "created_at": "auto", "weise3_id": "ZAKON 27", "bunker_seal_id": "ZAKON 27" }, "KanalPoruka": { "poruka_id": "WeisE3 hash",
api_endpointi{ "POST /api/v1/kanal/soba/": "kreiraj sobu, dodaj kreatora kao prvog clana", "GET /api/v1/kanal/soba/{soba_id}/": "detalji sobe (clanovi s kyber pk-evima)", "POST /api/v1/kanal/soba/{soba_id}/clanovi/": "dodaj clana (treba njegov kyber_pk)", "POST /api/v1/kanal/poruka/": "posalji poruku (body: AdresiraniAtom JSON)", "GET /api/v1/kanal/soba/{soba_id}/poruke/": "povuci poruke (paginacija, pull za Brsljani)", "GET /api/v1/kanal/profil/{wid}/kyber/": "dohvati javni kyber kljuc korisnika
websocket_tok[ "klijent -> WS /ws/kanal/{soba_id}?genesis_token=... -> autentikacija", "genesis -> pamti online clanove u Redis (genesis:kanal:online:{soba_id})", "posiljatelj -> POST /api/v1/kanal/poruka/ -> server pohrani u DB", "server -> broadcast atom_json svim online clanovima sobe via WS", "offline klijent -> Brsljani pull ili direktni GET poruka na /api/v1/kanal/soba/{id}/poruke/" ]
kljuc_management{ "generiranje": "browser WebCrypto ili kyber-py WASM — pri prvoj genesis prijavi", "pohrana_sk": "IndexedDB klijenta, AES-GCM enkriptiran genesis passphrase-om", "pohrana_pk": "genesis baza (javan, dijeli se slobodno za omotnice)", "multi_device": "svaki uredaj = novi keypair, soba ih sve cuva u clanovi[]", "gubitak_kljuca": "bez SK nema dekripcije — BELA. Moznost: key backup u genesis Vault (optional, opt-in)" }
brsljani_sync{ "sto_se_sinkronizira": "KanalSoba + KanalPoruka (atom_json je vec sifiran, sigurno za replikaciju)", "interval": "pull svakih 30s (postojeci brsljani cron)", "endpoint": "GET /api/v1/kanal/soba/{id}/poruke/?after_ts=... (standardna paginacija)", "napomena": "poruka je sifirana — i na MAR, ES, DE cvorovima pohranjene su samo sifrirane omotnice. Ni cvor-operator ne moze citati sadrzaj." }
faze_realizacije[ { "naziv": "P0 — KyberProfil i kljucevi", "zadaci": [ "model KyberProfil u genesis/models/", "POST /api/v1/kanal/profil/kyber/ — klijent salje pk", "GET /api/v1/kanal/profil/{wid}/kyber/ — dohvat pk-a za adresiraj()", "browser: WebCrypto keygen ili kyber-py (WASM build)" ], "napomena": "Bez ovoga nema omotnica. P0 je temelj svega." }, { "naziv": "P1 — KanalSoba CRUD", "zadaci": [ "model KanalSoba (soba_id WeisE3, tip, clanovi JSON, pe
sto_ne_gradimo[ "end-to-end read receipts (kompleksno, V2)", "video/voice pozivi (WASM WebRTC — posebna sesija)", "public key infrastructure (koristimo genesis profil kao PKI)", "push notifikacije (WebSocket je dovoljno za sada)" ]
kyber_py_napomenakyber-py je referentna Python implementacija ML-KEM-768 (NIST FIPS 203). Za internu produkcijsku upotrebu prihvatljivo. Za third-party audit: zamijeniti s liboqs (OpenQuantumSafe) koji je certificiran. Planirati za V2.
zakoni[ "ZAKON 2", "ZAKON 3", "ZAKON 17", "ZAKON 27", "ZAKON 37", "ZAKON 41", "ZAKON 43" ]
prethodni_entryc1138_security_audit_p0_p1_p2_p3.dok.json
created_at2026-05-24T15:20:00Z