feat(kunden): Kundenverwaltung, Hostzuweisung und Token-Verwaltung (#006)
Kunden und Standorte pflegen, nicht zugeordnete Hosts in einem Schritt zuweisen, Enrollment- und Host-Tokens verwalten, Audit-Log. Dashboard, Kundenseiten und globale Suche laufen jetzt auf der Datenbank. 45 Tests. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,27 +1,34 @@
|
||||
# #006 Kunden, Standorte und Hostzuweisung
|
||||
**Status:** offen
|
||||
**Status:** erledigt
|
||||
**Meilenstein:** v0.3.0
|
||||
**Labels:** ui, backend
|
||||
**Geschätzt:** 6 h **Tatsächlich:** –
|
||||
**Geschätzt:** 6 h **Tatsächlich:** 0 h 35 min
|
||||
|
||||
## Ziel
|
||||
Kunden und Standorte pflegen, neu registrierte Hosts schnell Kunden zuweisen und Enrollment-Tokens verwalten.
|
||||
|
||||
## Aufgaben
|
||||
- [ ] Kunden anlegen/bearbeiten/löschen (Name, Kundennummer, Ansprechpartner, E-Mail, Notizen)
|
||||
- [ ] Standorte je Kunde
|
||||
- [ ] Seite „Nicht zugeordnete Hosts“ mit Mehrfachauswahl und Schnellzuweisung (Kunde + Standort)
|
||||
- [ ] Callout auf dem Dashboard, solange nicht zugeordnete Hosts existieren
|
||||
- [ ] Enrollment-Tokens: erzeugen (Ablauf, max. Nutzungen, optional Kunde/Standort), anzeigen (einmalig), widerrufen; Install-One-Liner zum Kopieren
|
||||
- [ ] Host-Tokens widerrufen
|
||||
- [ ] Audit-Log-Einträge für alle Änderungen
|
||||
- [x] Kunden anlegen/bearbeiten/löschen (Name, Kundennummer, Ansprechpartner, E-Mail, Notizen)
|
||||
- [x] Standorte je Kunde
|
||||
- [x] Seite „Nicht zugeordnete Hosts“ mit Mehrfachauswahl und Schnellzuweisung (Kunde + Standort)
|
||||
- [x] Callout auf dem Dashboard, solange nicht zugeordnete Hosts existieren
|
||||
- [x] Enrollment-Tokens: erzeugen (Ablauf, max. Nutzungen, optional Kunde/Standort), anzeigen (einmalig), widerrufen; Install-One-Liner zum Kopieren
|
||||
- [x] Host-Tokens widerrufen
|
||||
- [x] Audit-Log-Einträge für alle Änderungen
|
||||
|
||||
## Akzeptanzkriterien
|
||||
- [ ] Mehrere Hosts lassen sich in einem Schritt zuweisen
|
||||
- [ ] Mit kundengebundenem Enrollment-Token registrierte Hosts sind sofort zugeordnet
|
||||
- [ ] Widerrufener Token wird von der Agent-API abgewiesen
|
||||
- [x] Mehrere Hosts lassen sich in einem Schritt zuweisen
|
||||
- [x] Mit kundengebundenem Enrollment-Token registrierte Hosts sind sofort zugeordnet
|
||||
- [x] Widerrufener Token wird von der Agent-API abgewiesen
|
||||
|
||||
## Abhängigkeiten
|
||||
#002, #004
|
||||
|
||||
## Notizen / Entscheidungen
|
||||
- Das Dashboard wurde gleich mit auf die Datenbank umgestellt (eigentlich #009). Sonst hätte eine gerade
|
||||
vorgenommene Zuweisung dort weiter als „nicht zugeordnet“ gestanden – ein irreführender Zwischenzustand.
|
||||
- Die Zuweisungslogik liegt als Service (`src/server/services/zuweisung.ts`) neben der Server Action,
|
||||
damit sie ohne Next.js-Laufzeit testbar ist.
|
||||
- Alle Dashboard-Seiten rendern dynamisch (`force-dynamic`); beim Vorrendern öffnete sonst jeder Build-Worker
|
||||
eigene Datenbankverbindungen und der Build brach mit „TooManyConnections“ ab.
|
||||
- Noch auf Beispieldaten: Host-Tabelle, Host-Detail, Rechnungen und Jahresbahn (folgen in #007 bis #009).
|
||||
|
||||
@@ -9,8 +9,8 @@ Details und Architektur: [../architektur.md](../architektur.md). Zeiten werden a
|
||||
| [#003](003-datenmodell.md) | Datenmodell und Migrationen | erledigt | v0.1.0 | 5 h | 0 h 25 min |
|
||||
| [#004](004-agent-api.md) | Agent-API | erledigt | v0.1.0 | 6 h | 0 h 20 min |
|
||||
| [#005](005-agent-skript.md) | Agent-Skript | erledigt | v0.2.0 | 8 h | 0 h 25 min |
|
||||
| [#006](006-kunden-hostzuweisung.md) | Kunden, Standorte und Hostzuweisung | in Arbeit | v0.3.0 | 6 h | – |
|
||||
| [#007](007-hosts-detailansichten.md) | Host-Tabelle, Suche und Detailansichten | offen | v0.4.0 | 8 h | – |
|
||||
| [#006](006-kunden-hostzuweisung.md) | Kunden, Standorte und Hostzuweisung | erledigt | v0.3.0 | 6 h | 0 h 35 min |
|
||||
| [#007](007-hosts-detailansichten.md) | Host-Tabelle, Suche und Detailansichten | in Arbeit | v0.4.0 | 8 h | – |
|
||||
| [#008](008-laufzeiten-rechnungen.md) | Laufzeiten und Rechnungen | offen | v0.5.0 | 10 h | – |
|
||||
| [#009](009-kundenuebersicht-dashboard-jahresbahn.md) | Kundenübersicht, Dashboard und Jahresbahn | offen | v0.6.0 | 8 h | – |
|
||||
| [#010](010-export.md) | Export CSV und PDF | offen | v0.6.0 | 5 h | – |
|
||||
@@ -20,4 +20,4 @@ Details und Architektur: [../architektur.md](../architektur.md). Zeiten werden a
|
||||
| [#014](014-deployment.md) | Deployment und Dokumentation | offen | v0.10.0 | 8 h | – |
|
||||
| [#015](015-feinschliff-v1.md) | Feinschliff für 1.0 | offen | v1.0.0 | 6 h | – |
|
||||
| [#016](016-anleitung-screenshots.md) | Benutzerhandbuch mit Screenshots | offen | v0.10.0 | 5 h | – |
|
||||
| | **Summe** | | | **106 h** | **1 h 38 min** |
|
||||
| | **Summe** | | | **106 h** | **2 h 13 min** |
|
||||
|
||||
Reference in New Issue
Block a user