← DokArh Portal
arhitekturalna_odluka

ARK jezgra: PII filtriranje + Ed25519 potpis za Bršljan gossip

Kreator: CC + Ivan Brtan Datum: 2026-05-27 Status:
WeisE3™ ID: (nema)
tiparhitekturalna_odluka
verzija1.0
kontekstARK (Autonomous Routing Kernel) — distribuirani identitet svake transakcije na svim čvorovima Bršljan mreže (EU/MAR/DE/ES/NEW/SHR). Problem: pusi_dokument slao cijeli .dok.json u gossip stream, uključujući OIB, ime klijenta, ZKI/JIR, resonance_proof, lat/lon. To je GDPR kršenje i sigurnosni propust.
odluke{ "§4_PII_opcija3": { "status": "IMPLEMENTIRANO", "opis": "PII polja NIKAD ne napuštaju matični čvor kroz Bršljan gossip. Whitelist pristup — samo JEZGRA polja ulaze u distributed truth. Sve ostalo ostaje lokalno.", "implementacija": "services/ark_pii_filter.py — filtriraj_bytes(tip, podaci_bytes)", "wire": "brsljani.py pusi_dokument(weise3_id, podaci, tip='') — filtrira PRIJE gossipa", "strippano_archive_doc": [ "company_id", "uploaded_by", "ocr_text",
tipovi{ "archive_doc": { "jezgra": [ "weise3_id", "bunker_seal_id", "krunica_hash", "created_at", "cross_hash", "category", "doc_number", "doc_date", "doc_amount" ], "ephemeral": [], "node_specific": [ "company_id", "uploaded_by" ], "adapter": [ "filename", "file_size", "content_type", "ocr_text", "ai_extracted", "resonance_proof", "layer1_sha256", "layer2_phash",
otvoreno{ "gps_kanal": "lat/lon → nova tablica KanalGPSPing (TTL=15min), ne replicira se. TODO: migracija KanalPoruka.lat/lon → null + nova tablica.", "p5_endpoint_spec": "GET /api/v1/brsljani/index mora vratiti krunica_hash u svakom indexu. Pull endpoint mora razlikovati jezgru u payload-u. Sprint zasebno.", "pii_jurisdikcija": "Opcija 3 implementirana (PII nikad ne napušta čvor). Ako budemo trebali 'EU čvor svjedok HR fakture' → opcija 1 (country field routing). Za sada nije potrebno." }
fajlovi{ "novi": [ "/var/www/genesis/services/ark_pii_filter.py" ], "patchirani": [ "/var/www/genesis/services/brsljani.py — pusi_dokument() + tip parametar" ], "deploy": [ "EU", "MAR", "DE" ] }
zakoni[ "ZAKON_ARK_§4", "ZAKON_ARK_§1", "ZAKON_17", "ZAKON_26", "ZAKON_43" ]
verifikacijassh genesis-eu && cd /var/www/genesis && .venv/bin/python3 -c "from services.ark_pii_filter import filtriraj_i_potpisi; r=filtriraj_i_potpisi('archive_doc', {'weise3_id': 'a'*64, 'krunica_hash': 'K', 'client_oib': 'PII', 'cross_hash': 'C'}); assert 'client_oib' not in r; assert 'ark_potpis' in r; pr