v3 Phase C: Security-Härtung + UX-Feedback
Security: - Passwort-Leak dicht: os-update/reboot fuettern das sudo-Passwort ueber stdin (jobengine: neues stdin_data + sanitisierte Log-Zeile log_cmd). Verifiziert: Secret taucht nicht mehr im Job-Log/ps auf. - /api/status liefert "secured" -> Topbar-Security-Chip zeigt ehrlich, ob Token aktiv. - WS-Token-Auth funktioniert (Query-Param, war bereits in auth.py). - Bind bleibt 0.0.0.0 (kein Aussperren), kein Token erzwungen. UX-Feedback: - Schnellstart-Bug gefixt (Titel/Text brechen um, .qa-main column). - Cookbook: Sortier-Dropdown (Downloads/Likes/Aktualisiert/Trend) wie HuggingFace. - Server & Wartung: Buttons -> selbsterklaerende Aktionszeilen mit Beschreibung; Reboot nur mit rotem Icon (Vollrot-Bug behoben). - Live-Konsole: neue Option "System (ganzer Server)" -> journalctl ueber alle Units. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -41,9 +41,19 @@ function applyStatus(s) {
|
||||
if (s.swap_ok) hideAlert();
|
||||
else showAlert(`LLM-Engine nicht erreichbar unter <b>${host}</b> – läuft der llama-swap Dienst?`, true);
|
||||
}
|
||||
setSecChip(s);
|
||||
for (const p of panels) p.onStatus?.(s);
|
||||
}
|
||||
|
||||
// Security-Chip: ehrlich anzeigen, ob ein Zugangs-Token aktiv ist.
|
||||
function setSecChip(s) {
|
||||
const chip = $("#sec-chip"), tx = $("#sec-chip-tx");
|
||||
if (!chip || !tx) return;
|
||||
const secured = !!s?.secured;
|
||||
chip.classList.toggle("ok", secured);
|
||||
tx.textContent = secured ? "Geschützt · Heimnetz" : "Nur im Heimnetz (offen)";
|
||||
}
|
||||
|
||||
function applyJobs(jobs) {
|
||||
lastJobs = jobs || [];
|
||||
for (const p of panels) p.onJobs?.(lastJobs);
|
||||
|
||||
Reference in New Issue
Block a user