ws: migrate push stream to data streaming
- daemon: send full snapshot on connect; versions/tick now carry the full state of one subsystem (subsystem + data); no legacy updated/subsystems payloads; refresh_state and POST /status/refresh broadcast per-subsystem versions with data - client: modelSet() patches models in place; onMessage/topic refresh retired; 3s initial-load fallback via new POST /api/status/refresh - schema: lib/schema.py TypedDicts + hoover/schema.js defaults + docs/state-model.md as single source of truth for state shapes - system: poll at 1s, volatile metrics registered, dashboard uses a dedicated system model (status model removed) - firewall: refuse to strip both https and ssh from the default zone (409, force override via UI confirm); set_zone_services persists services to the declarative config; collector exposes default_zone - UI: pages migrate to flat state shapes; post-mutation modelFetch refreshes removed (WS delta covers it) - tests: ws snapshot/delta/broadcast, refresh-state, schema types, model-set/js ws handler and reconnect fallback
This commit is contained in:
+2
-2
@@ -176,8 +176,8 @@ Log in with the username and password you provided during installation.
|
||||
|
||||
1. Confirm `config/auth/config.json` exists with JWT secret and WebAuthn RP configuration
|
||||
2. Confirm `data/auth.db` exists with admin user present
|
||||
3. Nginx config no longer has `auth_basic` for management domain
|
||||
4. WebSocket location no longer has `auth_basic off`
|
||||
3. Confirm the management server block has no server-level `auth_basic` directive — the management UI is authenticated by the Flask-layer JWT middleware, not nginx
|
||||
4. Confirm `location /ws` has `auth_basic off` — the WebSocket is authenticated by the daemon via the raw-JWT `Sec-WebSocket-Protocol` subprotocol, never by nginx
|
||||
5. Access the WebUI at `https://<management-domain>` — should show a login page
|
||||
|
||||
### Certificate Note
|
||||
|
||||
Reference in New Issue
Block a user