Verify hero_router_server forwarding works end-to-end with admin and rpc routing #16
Labels
No labels
prio_critical
prio_low
type_bug
type_contact
type_issue
type_lead
type_question
type_story
type_task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lhumina_code/hero_router#16
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
Per the architectural direction from #15 (closed):
/<service>/rpc/→rpc.sock,/<service>/admin/→ui.sockTasks
/<service>/rpc/correctly proxies to$HERO_SOCKET_DIR/<service>/rpc.sock/<service>/admin/proxies to$HERO_SOCKET_DIR/<service>/ui.sock(context=0 only)/<service>/web_<name>/→web_<name>.sockX-Hero-Context,X-Forwarded-Prefix,X-Hero-Claimsproperly setAcceptance Criteria
Related
Strategy
hero_router_server forwarding — VERIFIED
Reviewed
routes.rs::build_proxy_router(). All forwarding works correctly:/:service_name/rpc→$HERO_SOCKET_DIR/<service>/rpc.sock✓/:service_name/admin→$HERO_SOCKET_DIR/<service>/ui.sock(context=0 only) ✓/:service_name/:webname→$HERO_SOCKET_DIR/<service>/web_<webname>.sock✓X-Hero-Context,X-Forwarded-Prefix,X-Hero-Claims✓hero_router_ui — NEEDS CLEANUP
The
hero_router_uicrate still usesopenrpc_proxy!macro (line 36-40 ofmain.rs) to proxy/rpcand/openrpc.jsontohero_router_server. Per architecture, this should be removed — browser clients should call hero_router_server (port 9998) directly via CORS.Next: Audit ALL _ui crates across ecosystem
Will scan all service repos for
openrpc_proxy!,/rpcproxy routes, and JSON-RPC forwarding in _ui crates. Will post audit results in a follow-up comment.Cross-Ecosystem RPC Proxy Audit — Complete
All
_uicrates have been audited and cleaned. RPC routing is now exclusively handled byhero_router_server(TCP 9998).Audit Results
_uihas /rpc proxy?hero_routeropenrpc_proxy!macro inhero_router_uiRouterProxy,hero_rpc_derive/hero_rpc_openrpcdeps; updated discovery to"protocol": "ui"development_16hero_procopenrpc_proxy!macro inhero_proc_uiHeroProcProxy,hero_rpc_derive/hero_rpc_openrpcdepsdevelopment_16hero_codedd373f5already removed proxy ondevelopmenthero_foundry/api/rpcPOST route,/openrpc.jsonGEThero_router; kept/api/discoverfor dashboard schema displaydevelopment_16hero_os/rpc/{context}POST proxy,/openrpc.jsonGETdevelopment_16hero_osis/rpc/:contextPOST,/api/:context/*restPOSTrpc_call_inner(used by MCP handler)development_16hero_whiteboard/rpcPOST (admin + web),/openrpc.jsonGETadmin_rpc_proxy,web_rpc_proxy,openrpc_spec,forward_rpc; keptcall_rpc(server-side share-token resolution)development_16hero_collab/rpcPOST,/openrpc+/openrpc.jsonGETforward_rpc,OPENRPC_SPEC,socket_pathfrom state; droppedhttp-body-utildepdevelopment_16hero_aibrokerhero_authhero_bookshero_browser_mcphero_dbhero_embedderhero_indexerhero_inspectorhero_ledgerhero_proxyhero_shrimphero_slideshero_voicehero_matrixchathero_researcherVerification
cargo check(orrustfmt --checkwhere workspace deps were unavailable)development_16branch pushed to origin"protocol": "ui"where applicableWhat hero_router_server handles
/:service_name/rpc→rpc.sock(header injection: X-Hero-Context, X-Forwarded-Prefix, X-Hero-Claims)/:service_name/admin→ui.sock(context=0 only)/:service_name/:webname→web_<webname>.sock/rpc→ self (router's own RPC)