Description
The process of pairing a new Daemon with the Panel must be secure.
Goals
- Panel (C#) Implementation:
- Generate a short alphanumeric
registration_code for a new Node.
- Store the hashed code in the database.
- Expose API endpoints to generate and display the code in the admin UI.
- Daemon (Rust) Implementation:
- Develop the
RegisterPanel RPC method.
- Exchange the
registration_code for a long-term daemon_token (JWT or UUID).
- Persist the token in the Daemon's SQLite database.
- Security Measures:
- Implement an
AuthInterceptor (gRPC middleware) in Rust that requires a valid daemon_token for all other RPC methods.
- Verification: Upon successful pairing, update the node's status in the Panel to
Paired / Active.
Rationale
The handshake ensures that only authorized Panels can communicate with the Daemon. Without this, the Daemon remains open to unauthorized commands.
Description
The process of pairing a new Daemon with the Panel must be secure.
Goals
registration_codefor a new Node.RegisterPanelRPC method.registration_codefor a long-termdaemon_token(JWT or UUID).AuthInterceptor(gRPC middleware) in Rust that requires a validdaemon_tokenfor all other RPC methods.Paired/Active.Rationale
The handshake ensures that only authorized Panels can communicate with the Daemon. Without this, the Daemon remains open to unauthorized commands.