fix(install): 安装向导 Redis 密码不被 nx update/Compose 覆盖
Compose 不再注入 NEXUS_REDIS_URL;nx update 保留卷内带密码 URL;步骤 4 可从 install state 修复无密码 URL。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+27
-1
@@ -408,6 +408,27 @@ def _init_db_request_from_redis_url(redis_url: str) -> InitDbRequest | None:
|
||||
)
|
||||
|
||||
|
||||
def _redis_repair_request(redis_url: str) -> InitDbRequest | None:
|
||||
"""Build InitDbRequest for connection-check repair (URL + install state password)."""
|
||||
req = _init_db_request_from_redis_url(redis_url)
|
||||
if not req:
|
||||
return None
|
||||
if (req.redis_pass or "").strip():
|
||||
return req
|
||||
if not STATE_FILE.is_file():
|
||||
return req
|
||||
import json
|
||||
|
||||
try:
|
||||
state = json.loads(read_utf8_text(STATE_FILE))
|
||||
except (json.JSONDecodeError, OSError):
|
||||
return req
|
||||
saved_pass = (state.get("redis_pass") or "").strip()
|
||||
if saved_pass:
|
||||
return req.model_copy(update={"redis_pass": saved_pass})
|
||||
return req
|
||||
|
||||
|
||||
def _mask_redis_url(redis_url: str) -> str:
|
||||
parsed = urlparse(redis_url)
|
||||
if not parsed.password:
|
||||
@@ -957,7 +978,7 @@ async def connection_check():
|
||||
resolved_display: str | None = None
|
||||
|
||||
if not redis_ok and redis_url:
|
||||
req_from_env = _init_db_request_from_redis_url(redis_url)
|
||||
req_from_env = _redis_repair_request(redis_url)
|
||||
if req_from_env:
|
||||
ok, msg, resolved = _resolve_redis_url(_sanitize_redis_request(req_from_env))
|
||||
if ok and resolved:
|
||||
@@ -1124,6 +1145,11 @@ async def init_db(req: InitDbRequest):
|
||||
"install_dir": install_dir,
|
||||
"site_url": site_url,
|
||||
"api_port": req.api_port,
|
||||
"redis_host": req.redis_host,
|
||||
"redis_port": req.redis_port,
|
||||
"redis_db": req.redis_db,
|
||||
# Step 4 connection-check repair only; removed when install locks
|
||||
"redis_pass": req.redis_pass,
|
||||
"guardian_results": guardian_results,
|
||||
"docker_mode": _is_docker_install_mode(),
|
||||
"step": 4,
|
||||
|
||||
Reference in New Issue
Block a user