mirror of
https://github.com/harivansh-afk/betterNAS.git
synced 2026-04-15 13:03:43 +00:00
Split node enrollment from export sync and issue Finder-compatible DAV credentials so the stack proves the real backend seam before any web UI consumes it.
1.3 KiB
1.3 KiB
Project Constraints
Delivery sequencing
- Start with
apps/control-planefirst. - Deliver the core backend in 2 steps, not 3:
control-serverplusnode-servicecontract and runtime loop- web control plane on top of that stable backend seam
- Do not start web UI work until the
control-serverandnode-servicecontract is stable.
Architecture
control-serveris the clean backend contract that other parts consume.apps/node-agentreports intoapps/control-plane.apps/webreads fromapps/control-plane.- Local mount UX is issued by
apps/control-plane.
Backend contract priorities
- The first backend seam must cover:
- node enrollment
- node heartbeats
- node export reporting
- control-server persistence of nodes and exports
- mount profile issuance for one export
control-servershould own:- node auth
- user auth
- mount issuance
Mount profile shape
- Prefer standard WebDAV username and password semantics for Finder compatibility.
- The consumer-facing mount profile should behave like:
- export id
- display name
- mount URL
- username
- password
- readonly
- expires at
Service boundary
- Keep
node-servicelimited to the WebDAV mount surface. - Route admin and control actions through
control-server, not directly from browsers tonode-service.