Fix DDNS registration and wizard pre-fill after installer run
Unit Tests / test (push) Successful in 15m29s
Unit Tests / test (push) Successful in 15m29s
DDNS registration (setup_cell.py): - Replace pyotp dependency with stdlib TOTP (HMAC-SHA1, RFC 6238) pyotp is only available inside the Docker container, not on the host where setup_cell.py runs — registration was silently skipped every time - OTP header still sent if generation succeeds; omitted gracefully if not Wizard pre-fill (setup_manager + Setup.jsx): - GET /api/setup/status now returns 'preconfigured' dict with cell_name, domain_mode, domain_name, and provider tokens from installer-written config - Setup.jsx fetches status on mount and pre-fills all form state so the user only needs to set password, services, and timezone — not re-enter the identity they already configured in the bash installer - Fails silently so wizard still works on fresh installs with no config Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+12
-1
@@ -74,11 +74,22 @@ class SetupManager:
|
||||
return bool(self.config_manager.get_identity().get('setup_complete', False))
|
||||
|
||||
def get_setup_status(self) -> Dict[str, Any]:
|
||||
"""Return current setup status and wizard metadata."""
|
||||
"""Return current setup status, wizard metadata, and any pre-configured identity."""
|
||||
identity = self.config_manager.get_identity()
|
||||
preconfigured = {
|
||||
k: v for k, v in {
|
||||
'cell_name': identity.get('cell_name', ''),
|
||||
'domain_mode': identity.get('domain_mode', ''),
|
||||
'domain_name': identity.get('domain_name', ''),
|
||||
'cloudflare_api_token': identity.get('cloudflare_api_token', ''),
|
||||
'duckdns_token': identity.get('duckdns_token', ''),
|
||||
}.items() if v
|
||||
}
|
||||
return {
|
||||
'complete': self.is_setup_complete(),
|
||||
'available_services': AVAILABLE_SERVICES,
|
||||
'available_timezones': AVAILABLE_TIMEZONES,
|
||||
'preconfigured': preconfigured,
|
||||
}
|
||||
|
||||
# ── validation ────────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user