code wiki / _hdl_build / nx_pub_approve_outward.nx

nx_pub_approve_outward.nx source

↩ module page · 53 lines · 2903 B

1// nx_pub_approve_outward.nx -- Approves all pending outward requests and stages valid ones to the publisher's liveroot. 2import "nx_gate_gn.nx" 3import "nx_gate_base.nx" 4// nx_pub_approve_outward.nx -- STEP 3 (operator-authorized "approve all"): create an R6 approval token for EVERY 5// held outward request in the canonical queue, then run the GOVERNED drain so the now-approved + sha-valid ones 6// stage to the publisher's liveroot (stale-sha ones fail-closed). The actual public push to the host + DNS stays 7// separately gated. Reversible (per-dest .prev + append-only ledger). license_tier: ORIGINAL expect_exit: 0 8import "nx_syscalls.nx" 9import "nx_publisher.nx" 10 11func grow(name: *u8, ok: i64) -> i64 { if ok==1 { gw(" PASS " as *u8) } else { gw(" FAIL " as *u8) } gw(name); gw(" 12" as *u8); return ok } 13 14func main() -> i64 { 15 pub_init() 16 let appr: *u8 = "knowledge/publish/approvals" as *u8 17 __syscall(83, appr as i64, 493, 0, 0, 0, 0) 18 __syscall(83, "knowledge/publish/stage" as *u8 as i64, 493, 0, 0, 0, 0) 19 __syscall(83, "knowledge/publish/live" as *u8 as i64, 493, 0, 0, 0, 0) 20 gw("=== STEP 3: approve ALL held outward (operator-authorized) + governed drain ===\n" as *u8) 21 22 let lenp: *i64 = sys_mmap(8) as *i64 23 let data: *u8 = sys_read_file("knowledge/publish/queue.tsv" as *u8, lenp) 24 var approved: i64 = 0 25 if (data as i64) != 0 { 26 let n: i64 = lenp[0] 27 let stf: *u8 = sys_mmap(64); let sha: *u8 = sys_mmap(256); let pol: *u8 = sys_mmap(64) 28 var i: i64=0; var ls: i64=0 29 while i < n { 30 if data[i]==(10 as u8) { 31 let line: *u8 = ((data as i64)+ls) as *u8; let ll: i64 = i-ls 32 pub_field(line, ll, 0, stf) 33 if pub_streq(stf, "PENDING" as *u8)==1 { 34 pub_field(line, ll, 6, pol) 35 if pub_streq(pol, "outward" as *u8)==1 { 36 pub_field(line, ll, 3, sha) 37 if pub_approve(sha, appr)==1 { approved = approved + 1 } 38 } 39 } 40 ls = i + 1 41 } 42 i = i + 1 43 } 44 } 45 gw(" approval tokens created for outward shas=" as *u8); gn(approved); gw("\n" as *u8) 46 47 let led_before: i64 = pub_count_ledger("knowledge/publish/ledger.tsv" as *u8) 48 let pubd: i64 = pub_run_governed("knowledge/publish/queue.tsv" as *u8, "knowledge/publish/ledger.tsv" as *u8, "knowledge/publish/stage" as *u8, "knowledge/publish/live" as *u8, "publish:canonical" as *u8, appr) 49 let led_after: i64 = pub_count_ledger("knowledge/publish/ledger.tsv" as *u8) 50 gw(" governed drain PUBLISHED this pass=" as *u8); gn(pubd); gw(" (ledger " as *u8); gn(led_before); gw("->" as *u8); gn(led_after); gw(")\n" as *u8) 51 gw(" approved+valid outward staged to liveroot; stale-sha fail-closed; PUBLIC push (host+DNS) remains gated.\n" as *u8) 52 return 0 53}