Frontend: 'Token neu generieren / Neu enrollen' im Node-Aktions-Menü (Endpoint existiert, UI fehlt) #192

Closed
opened 2026-06-26 18:51:15 +00:00 by chinux · 2 comments
Owner

Lücke (UI)

Der Backend-Endpoint POST /api/admin/nodes/{node_name}/regenerate-token (admin_router.py:649, #185/#117) existiert und funktioniert, hat aber keinen Knopf im Frontend. Im Node-Aktions-Menue stehen nur: Node-Einstellungen, Agent-Installationslink, Node loeschen. → Re-Enrollment (frischer single-use Token, alten Pubkey-Slot freigeben) ist nur per curl moeglich.

Konkret aufgefallen, als ITD-PROX01 (VPN) in der Challenge-Auth-Sackgasse hing und kein UI-Weg da war, den Enroll-Token neu zu erzeugen.

Fix (Frontend)

  • Im Node-Aktions-Menue (neben "Agent-Installationslink") einen Eintrag "Token neu generieren / Neu enrollen" (superadmin-only, da Endpoint require_superadmin).
  • Auf Klick: POST auf den Endpoint, dann das zurueckgegebene curl_command/install_url im selben Stil anzeigen wie der bestehende "Agent-Installationslink"-Dialog (Copy-Button).
  • Deutlicher Hinweis: "Der alte Agent muss mit diesem neuen Script neu ausgerollt werden; bestehende Verbindung wird ungueltig." (passt zum #185-Re-Enroll-Verhalten).
  • Setzt #191 voraus (sonst zeigt der Dialog fuer VPN-Nodes die falsche URL).

Akzeptanz

  • Superadmin kann Token/Enrollment pro Node aus der UI neu erzeugen.
  • Angezeigte install_url/curl ist transport-korrekt (nach #191): VPN→ws/http, public→wss/https.
  • Klarer Re-Ausroll-Hinweis.

Branch

feat/regenerate-token-ui

## Lücke (UI) Der Backend-Endpoint `POST /api/admin/nodes/{node_name}/regenerate-token` (admin_router.py:649, #185/#117) existiert und funktioniert, hat aber **keinen Knopf im Frontend**. Im Node-Aktions-Menue stehen nur: Node-Einstellungen, Agent-Installationslink, Node loeschen. → Re-Enrollment (frischer single-use Token, alten Pubkey-Slot freigeben) ist nur per curl moeglich. Konkret aufgefallen, als ITD-PROX01 (VPN) in der Challenge-Auth-Sackgasse hing und kein UI-Weg da war, den Enroll-Token neu zu erzeugen. ## Fix (Frontend) - Im Node-Aktions-Menue (neben "Agent-Installationslink") einen Eintrag **"Token neu generieren / Neu enrollen"** (superadmin-only, da Endpoint `require_superadmin`). - Auf Klick: POST auf den Endpoint, dann das zurueckgegebene `curl_command`/`install_url` im selben Stil anzeigen wie der bestehende "Agent-Installationslink"-Dialog (Copy-Button). - Deutlicher Hinweis: "Der alte Agent muss mit diesem neuen Script neu ausgerollt werden; bestehende Verbindung wird ungueltig." (passt zum #185-Re-Enroll-Verhalten). - Setzt #191 voraus (sonst zeigt der Dialog fuer VPN-Nodes die falsche URL). ## Akzeptanz - Superadmin kann Token/Enrollment pro Node aus der UI neu erzeugen. - Angezeigte install_url/curl ist transport-korrekt (nach #191): VPN→ws/http, public→wss/https. - Klarer Re-Ausroll-Hinweis. ## Branch `feat/regenerate-token-ui`
Author
Owner

Umgesetzt in 8c94521 (auf main).

NodeCard.svelte: Eintrag Token neu generieren im Aktions-Dropdown (im isSuperadmin-Block, neben Agent-Installationslink), Prop onRegenerateToken. +page.svelte regenerateToken(): Bestätigungsdialog → nodesApi.regenToken → zeigt das transport-richtige curl_command im bestehenden InstallInfoModal (Copy-Button), danach load(); Fehler (z. B. VPN-400) ins globale Error-Banner. URL ist via Helper (#191) für VPN-Nodes automatisch korrekt.

Akzeptanz verifiziert: svelte-check 0 Errors. Superadmin-gated, Bestätigung, korrekte Install-URL/curl.

Hinweis: inhaltsgleich zum (versehentlich separat angelegten) #194. Bleibt offen — bitte Dup-Handling.

Umgesetzt in `8c94521` (auf `main`). `NodeCard.svelte`: Eintrag **Token neu generieren** im Aktions-Dropdown (im `isSuperadmin`-Block, neben Agent-Installationslink), Prop `onRegenerateToken`. `+page.svelte` `regenerateToken()`: Bestätigungsdialog → `nodesApi.regenToken` → zeigt das transport-richtige `curl_command` im bestehenden `InstallInfoModal` (Copy-Button), danach `load()`; Fehler (z. B. VPN-400) ins globale Error-Banner. URL ist via Helper (#191) für VPN-Nodes automatisch korrekt. **Akzeptanz verifiziert**: svelte-check 0 Errors. Superadmin-gated, Bestätigung, korrekte Install-URL/curl. Hinweis: inhaltsgleich zum (versehentlich separat angelegten) #194. Bleibt offen — bitte Dup-Handling.
Author
Owner

Verifiziert → erfüllt, wird geschlossen. Knopf 'Token neu generieren' in NodeCard.svelte:264, API-Client regenToken (api.ts:95), Handler mit Bestätigungsdialog + curl-Anzeige (+page.svelte:995-998), verdrahtet via onRegenerateToken. Superadmin-Endpoint.

**Verifiziert → erfüllt, wird geschlossen.** Knopf 'Token neu generieren' in NodeCard.svelte:264, API-Client `regenToken` (api.ts:95), Handler mit Bestätigungsdialog + curl-Anzeige (+page.svelte:995-998), verdrahtet via onRegenerateToken. Superadmin-Endpoint.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
chinux/theProx#192
No description provided.