KB-2F43
Topic Promotion Governed Activation — 07 UI/API Projection Contract (2026-06-03)
2 min read Revision 1
one-roof-governancenonprod-cloneui-apiprojection2026-06-03
07 — Objective F: UI / API Projection Contract — PASS
Artifact: sql/F_ui_api.sql (7 read-only v_ui_* views, live JSON proven).
Views & contracts (live)
v_ui_topic_tree— recursive topic tree, 9 nodes {topic,parent,status,provenance_kind,depth,path}.v_ui_object_topic— object→topic edges {object,topic,zone,confidence,assigned_kind,owner_gov_code,owner_kind,lane}; 6 edges; lane=official when owner exists else candidate.v_ui_axis_browser— per-axis registry+coverage rollup; 3 axes (containment 5 values/0 rules; responsibility 6/210 req/0 gap; topic 7/6 req/1 gap/1 quarantine).v_ui_lane— two-lane split; official=5, candidate=1.v_ui_detector_findings— open drift ordered critical→warning→info; 41.v_ui_review_queue— union of assignment_unowned + value_promotion + critical/warning drift; 6 items.v_ui_coverage_dashboard— single-row JSON: {ownership_gap:0, topic_gap:1, active_axes:3, open_drift:41, critical_drift:0, review_queue_size:6, reconcile:{label_orphans:0, topics_without_label:2, labels_without_topic:48, divergent_collections:4, projection_gaps:1}}.
Frontend notes
Candidate vs official lane is the central UX (official=owned/approved; candidate=needs review), drives the review queue. All views read-only; no production UI/Nuxt mutation. JSON shapes (jsonb_agg/to_jsonb) proven live = the API payloads.
Verdict
PASS. All 8 requested projections produced with live SELECT/JSON output.