code wiki / _hdl_build / nx_docportal_admin_gate.nx

nx_docportal_admin_gate.nx

buildroot/runtime/_hdl_build/nx_docportal_admin_gate.nx

9334 B148 linesdepth 10pulls 18 transitivereach 0 importersview sourcekind gate/prooftopic docportal
docsdependenciesstructsconstsfunctions

about

nx_docportal_admin_gate.nx -- MEASURED gate for the admin.<domain> document-portal handler. Self-contained (nx_status_daemon pattern: craft HTTP request byte-buffers, call da_handle directly, assert the response bytes AND the real side effects in the sovereign store -- no socket, no fork, deterministic). Proves the admin capability the operator asked for: authenticated per-domain upload with public/private classification + RBAC deny-by-default. T1 authed client upload (level 1) -> 200 OK + UPLOADED, and the doc is in the domain's PUBLIC shard T2 anonymous upload (level 0) -> 401 Unauthorized, and NOTHING is ingested (deny-by-default) T3 private upload routing -> lands in the PRIVATE shard, not the public one T4 per-domain isolation -> the upload is not readable from another domain's shard T5 unknown route -> 404 GREEN iff 5/5. Appends knowledge/status/docportal_admin_gate.log. license_tier: ORIGINAL

dependencies 2 imports · 0 importers

nx_docportal_admin_lib.nx nx_g_puts_lib.nx nx_docportal_admin_gate.nx

imports: nx_docportal_admin_lib.nxnx_g_puts_lib.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main g_puts sys_write dp_cid fnv1a_init fnv1a_update g_slen g_mkreq da_handle da_pathlen da_prefix da_slen da_text_response da_cat da_numc da_is_post da_eq da_slen ↻ da_query_str da_slen ↻ da_slen ↻ da_body_start da_parse_flags da_query_str ↻ sys_munmap dp_default_policy at_rest_confidential dp_cid ↻ doc_put dp_prefix dp_cat dp_key dp_cat ↻ dp_catn sys_mmap at_rest_confidential ↻ dek_ensure dek_load sys_mmap ↻ dc_dek_path

structs

none

consts

none

functions

15func g_num(v: i64) -> i64
called by 1: main
23func g_w(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 }
called by 1: main
24func g_wn(fd: i64, v: i64) -> i64
called by 1: main
30func g_contains(hay: *u8, n: i64, ndl: *u8) -> i64
called by 1: main
38func g_mkreq(out: *u8, head: *u8, body: *u8, blen: i64) -> i64
called by 1: main
44func g_slen(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n }
called by 1: main
46func main() -> i64