feat/os-server-prd-hero-rpc-prerequisites #18

Merged
timur merged 2 commits from feat/os-server-prd-hero-rpc-prerequisites into development 2026-04-06 11:07:59 +00:00
Member

If no CRUD types, like services, we need to handle these:
added is an ADR for using different paths when running on a mos box that needs implenting

If no CRUD types, like services, we need to handle these: added is an ADR for using different paths when running on a mos box that needs implenting
Allows domains without CRUD types (like mosnet, mos_volmgr) to provide
a custom OpenRPC spec instead of auto-generating from type_names().
All hero_rpc socket and data paths are hardcoded in OServerConfig
as static methods that derive from ~/hero/var/. This breaks system
daemons (MOS runs as root, no home dir), containers (HOME may be
unset, falls back to /tmp), and multi-instance/testing scenarios.

ADR proposes:
- Add optional socket_dir/data_dir fields to OServerConfig
- Convert static path helpers to instance methods
- Add HERO_SOCKET_DIR / HERO_DATA_DIR env var fallback
- Priority: config field > env var > ~/hero/var/ default
- Zero breaking change (defaults unchanged)

Four implementation phases:
1. OServerConfig + server crate (self-contained)
2. service crate (lifecycle.rs, hero_server.rs)
3. openrpc_proxy! macro (compile-time → runtime path)
4. Downstream adoption (mosnetd, mos_volmgrd, my_os_server)

Affects 14 files across 5 crates in hero_rpc, plus 3 downstream
projects in geomind_code (mosnet, mos_volmgr, my_os_server).

Triggered by my_os_server PRD: system SAL daemon needs /run/ paths
on MOS, not ~/hero/var/sockets/hero_db_root_os.sock.
timur merged commit a6042b829d into development 2026-04-06 11:07:59 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_rpc!18
No description provided.