Update docs/build-notes.md
Update build notes for authentication milestone
This commit is contained in:
+23
-16
@@ -44,18 +44,22 @@
|
||||
|
||||
### Milestone 4 — Authentication and access control
|
||||
|
||||
- Add password authentication for the Munin web interface
|
||||
- Require authentication before accessing the status API
|
||||
- Store the configured admin password through the StartOS package configuration
|
||||
- Pass the configured admin password to the service through `MUNIN_ADMIN_PASSWORD`
|
||||
- Create cryptographically random session tokens
|
||||
- Store active sessions in memory with a 24-hour expiration
|
||||
- Protect sessions with an `HttpOnly`, `Secure`, `SameSite=Strict` cookie
|
||||
- Compare passwords using a timing-safe comparison
|
||||
- Return HTTP 401 when the status API is accessed without a valid session
|
||||
- Provide a web login form for authentication
|
||||
- Verify successful login and authenticated status API access on the physical StartOS server
|
||||
- Verify the authentication-protected S9PK package contains the authentication backend and updated web interface
|
||||
- Add user authentication for the Munin web interface
|
||||
- Require authentication before accessing wallet and monitoring data
|
||||
- Add password management through StartOS `Actions & Config`
|
||||
- Store the Munin admin password in the persistent StartOS `main` volume
|
||||
- Pass the stored admin password to the Munin container through `MUNIN_ADMIN_PASSWORD`
|
||||
- Protect the status API from unauthenticated access
|
||||
- Use secure, HTTP-only, SameSite session cookies
|
||||
- Use cryptographically random session tokens
|
||||
- Use constant-time password comparison
|
||||
- Expire sessions after 24 hours
|
||||
- Clean up expired sessions periodically
|
||||
- Display a login form in the web interface
|
||||
- Display authentication errors in the web interface
|
||||
- Verify authentication on the physical StartOS server
|
||||
- Verify that the configured password survives a package update
|
||||
- Verify that authenticated access to the status API continues to work after the package update
|
||||
|
||||
## Current architecture
|
||||
|
||||
@@ -64,11 +68,12 @@
|
||||
- nginx serving the web interface
|
||||
- Node.js status API
|
||||
- Static dashboard in `web/index.html`
|
||||
- Password authentication and session handling in `server/auth.js`
|
||||
- Fulcrum provided as a StartOS dependency
|
||||
- Electrum protocol connectivity check from Munin to Fulcrum
|
||||
- Blockchain height queried through Fulcrum
|
||||
- Admin password provided to the service through the StartOS package environment
|
||||
- StartOS `main` volume used for persistent Munin data
|
||||
- Admin password stored persistently in the StartOS `main` volume
|
||||
- Session-based authentication for the web interface
|
||||
|
||||
## Current status
|
||||
|
||||
@@ -76,9 +81,11 @@ Munin Bitcoin is running as a StartOS service and can verify connectivity to the
|
||||
|
||||
Munin can query the current Bitcoin blockchain height through Fulcrum.
|
||||
|
||||
The Munin web interface now requires password authentication before the protected status API can be accessed.
|
||||
The Munin web interface is protected by password authentication.
|
||||
|
||||
Authenticated sessions use a temporary in-memory session token with a 24-hour lifetime.
|
||||
The admin password can be configured through StartOS `Actions & Config` and is stored in the persistent `main` volume so that it survives package updates.
|
||||
|
||||
Authentication and password persistence have been verified on the physical StartOS server, including verification that an existing password remains valid after a package update.
|
||||
|
||||
Bitcoin Core RPC is not currently used by Munin.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user