Phase 4 enhancements: WebSocket auth, HTTPS UI, plugin hooks, build fixes
Security:
- Add token-based WebSocket authentication (closes critical security gap)
- In-memory token store with 24h TTL (token_store.py)
- POST /api/auth/token exchanges Basic Auth for WS token
- GET /api/auth/status public endpoint for auth check
- WebSocket validates token query param, rejects with close code 4401
- Frontend LoginPrompt modal for credential entry
- WebSocket manager handles full auth flow with auth_required state
- No-op when AUTH_ENABLED=false (preserves existing behavior)
HTTPS:
- Wire HTTPS toggle in Settings UI (POST /api/system/ssl/toggle)
- Add certificate regeneration button
- Display SSL info (expiration, SANs, SHA256 fingerprint)
Plugins:
- Wire trigger_hook("pm3_command") in PM3 service
- Wire trigger_hook("update_check") in update manager
Build/Infrastructure:
- Enable NetworkManager in pi-gen AP setup stage
- Add HF booster board detection patch for Proxmark3
- Update LED PWM control patch
- Fix BLE adapter, UPS drivers, WiFi manager improvements
- Update HTTPS support stage script
Documentation:
- Update PROJECT_STATUS.md and IMPLEMENTATION_PRIORITIES.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -103,7 +103,7 @@ class UPSManager:
|
||||
print(f"Unknown UPS type '{ups_type}', will auto-detect")
|
||||
return None
|
||||
|
||||
async def initialize(self, startup_delay: float = 1.0) -> bool:
|
||||
async def initialize(self, startup_delay: float = 2.0) -> bool:
|
||||
"""Initialize connection to UPS hardware.
|
||||
|
||||
Args:
|
||||
@@ -124,15 +124,19 @@ class UPSManager:
|
||||
self._status.error_message = "UPS disabled"
|
||||
return False
|
||||
|
||||
# Small delay to ensure I2C bus is ready after boot
|
||||
# Delay to ensure I2C bus is ready after boot
|
||||
# PiSugar and other I2C devices may not be ready immediately
|
||||
if startup_delay > 0:
|
||||
print(f"UPS: Waiting {startup_delay}s for I2C bus to settle...")
|
||||
await asyncio.sleep(startup_delay)
|
||||
|
||||
# Run auto-detection
|
||||
# Run auto-detection with extended retries for boot scenarios
|
||||
print("Auto-detecting UPS hardware...")
|
||||
driver, message = await auto_detect_driver(
|
||||
pisugar_host=config.UPS_PISUGAR_HOST,
|
||||
pisugar_port=config.UPS_PISUGAR_PORT
|
||||
pisugar_port=config.UPS_PISUGAR_PORT,
|
||||
i2c_retries=5,
|
||||
i2c_retry_delay=1.0
|
||||
)
|
||||
|
||||
if driver:
|
||||
|
||||
Reference in New Issue
Block a user