34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""OpenPanel Community bridge client."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
from typing import Any
|
|
|
|
import httpx
|
|
|
|
BRIDGE_URL = os.getenv("OPENPANEL_BRIDGE_URL", "http://10.10.10.123:18087").rstrip("/")
|
|
BRIDGE_TOKEN = os.getenv("OPENPANEL_BRIDGE_TOKEN", "")
|
|
OPENADMIN_URL = os.getenv("OPENADMIN_URL", "https://admin.openpanel.ligbox.com.br:2087")
|
|
|
|
|
|
def bridge_configured() -> bool:
|
|
return bool(BRIDGE_TOKEN)
|
|
|
|
|
|
def autologin_payload(username: str) -> dict[str, Any]:
|
|
"""MVP: devolve URL OpenAdmin + instrução CONNECT (Enterprise futuro)."""
|
|
return {
|
|
"username": username,
|
|
"openadmin_url": OPENADMIN_URL,
|
|
"note": "CONNECT autologin requer OpenPanel Enterprise API — use OpenAdmin manualmente",
|
|
"bridge_configured": bridge_configured(),
|
|
}
|
|
|
|
|
|
def health() -> dict[str, Any]:
|
|
if not bridge_configured():
|
|
return {"ok": False, "reason": "OPENPANEL_BRIDGE_TOKEN ausente"}
|
|
with httpx.Client(timeout=10.0) as client:
|
|
res = client.get(f"{BRIDGE_URL}/api", headers={"Authorization": f"Bearer {BRIDGE_TOKEN}"})
|
|
return {"ok": res.status_code < 400, "status": res.status_code}
|