Update docs/build-notes.md
Document completed authentication milestone
This commit is contained in:
+21
-9
@@ -42,6 +42,21 @@
|
|||||||
- Display Fulcrum server version and blockchain height through the status API
|
- Display Fulcrum server version and blockchain height through the status API
|
||||||
- Verify live blockchain height from the physical StartOS server
|
- Verify live blockchain height from the physical StartOS server
|
||||||
|
|
||||||
|
### 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
|
||||||
|
|
||||||
## Current architecture
|
## Current architecture
|
||||||
|
|
||||||
- StartOS package
|
- StartOS package
|
||||||
@@ -49,9 +64,11 @@
|
|||||||
- nginx serving the web interface
|
- nginx serving the web interface
|
||||||
- Node.js status API
|
- Node.js status API
|
||||||
- Static dashboard in `web/index.html`
|
- Static dashboard in `web/index.html`
|
||||||
|
- Password authentication and session handling in `server/auth.js`
|
||||||
- Fulcrum provided as a StartOS dependency
|
- Fulcrum provided as a StartOS dependency
|
||||||
- Electrum protocol connectivity check from Munin to Fulcrum
|
- Electrum protocol connectivity check from Munin to Fulcrum
|
||||||
- Blockchain height queried through Fulcrum
|
- Blockchain height queried through Fulcrum
|
||||||
|
- Admin password provided to the service through the StartOS package environment
|
||||||
|
|
||||||
## Current status
|
## Current status
|
||||||
|
|
||||||
@@ -59,21 +76,16 @@ Munin Bitcoin is running as a StartOS service and can verify connectivity to the
|
|||||||
|
|
||||||
Munin can query the current Bitcoin blockchain height through Fulcrum.
|
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.
|
||||||
|
|
||||||
|
Authenticated sessions use a temporary in-memory session token with a 24-hour lifetime.
|
||||||
|
|
||||||
Bitcoin Core RPC is not currently used by Munin.
|
Bitcoin Core RPC is not currently used by Munin.
|
||||||
|
|
||||||
Wallet configuration, label storage, transaction scanning, and notification functionality are not yet implemented.
|
Wallet configuration, label storage, transaction scanning, and notification functionality are not yet implemented.
|
||||||
|
|
||||||
## Next steps
|
## Next steps
|
||||||
|
|
||||||
### Milestone 4 — Authentication and access control
|
|
||||||
|
|
||||||
- Add user authentication for the Munin web interface
|
|
||||||
- Require authentication before accessing wallet and monitoring data
|
|
||||||
- Add password management
|
|
||||||
- Protect wallet addresses, xpubs, BSMS data, labels, and transaction information
|
|
||||||
- Keep authentication credentials separate from wallet data
|
|
||||||
- Integrate with StartOS authentication/security conventions where appropriate
|
|
||||||
|
|
||||||
### Milestone 5 — Address watchlist
|
### Milestone 5 — Address watchlist
|
||||||
|
|
||||||
- Add watch-only Bitcoin addresses
|
- Add watch-only Bitcoin addresses
|
||||||
|
|||||||
Reference in New Issue
Block a user