windows installer fixes
CI Test Suite / Run Component Tests & Pipeline Verification (push) Failing after 1m36s
Release Binaries & Packages / Build & Release Standalone Binaries (Linux & Windows Cross-Compilation) (push) Successful in 10m7s

This commit is contained in:
2026-09-26 21:07:34 +02:00
parent a133050cb5
commit 8287af3129
2 changed files with 15 additions and 13 deletions
+12 -7
View File
@@ -768,11 +768,12 @@ def init_db(db_path: str, enrollment_secret: Optional[str] = None, max_seats: in
conn.execute("INSERT INTO hermes_tokens (token, name, created_at, status) VALUES (?, 'Default Hermes Agent', ?, 'active')",
(initial_token, now_iso))
status = "active" if max_seats > 0 else "unlicensed"
if enrollment_secret:
conn.execute("""
INSERT OR IGNORE INTO license_config (id, max_seats, enrollment_secret, license_status)
VALUES (1, ?, ?, 'unlicensed')
""", (max_seats, enrollment_secret))
VALUES (1, ?, ?, ?)
""", (max_seats, enrollment_secret, status))
conn.commit()
conn.close()
@@ -1325,8 +1326,8 @@ def enroll_client(req: ClientEnrollRequest, request: Request = None):
raise HTTPException(status_code=500, detail="License configuration not initialized")
expected_secret, max_seats = row[0], row[1]
license_status = row[2] if len(row) > 2 and row[2] else "unlicensed"
if max_seats <= 0 or license_status != "active":
license_status = row[2] if len(row) > 2 and row[2] else ("active" if max_seats > 0 else "unlicensed")
if max_seats <= 0 or license_status in ("unlicensed", "revoked", "expired"):
conn.close()
raise HTTPException(status_code=403, detail="Server is unlicensed. Import an activated .lic file via the WebUI before enrolling edge clients.")
@@ -1694,10 +1695,14 @@ def get_license_summary() -> Dict[str, Any]:
if info.get("is_expired"):
status_label = "EXPIRED"
elif max_seats <= 0 or license_status_db != "active" or info.get("is_self_signed") or not info.get("seats"):
status_label = "UNLICENSED"
else:
elif info.get("seats") and not info.get("is_self_signed"):
status_label = "ACTIVE"
elif max_seats > 0 and license_status_db == "active":
status_label = "ACTIVE"
elif info.get("is_self_signed"):
status_label = "SELF-SIGNED" if max_seats > 0 else "UNLICENSED"
else:
status_label = "UNLICENSED" if max_seats <= 0 else "ACTIVE"
pct = int((active_seats / max_seats * 100)) if max_seats > 0 else 0
return {