spawner/docs/versions/CHANGELOG.md
XPS\Micro 1b44bb3d10 Update documentation for v0.3.0 (admin features)
- CHANGELOG.md: Add v0.3.0 with admin dashboard, email verification,
  user states, and all new features
- install/README.md: Add SMTP configuration variables
- README.md: Update version to 0.3.0

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 07:06:13 +01:00

157 lines
5.6 KiB
Markdown

# Changelog
Alle nennenswerten Aenderungen werden in dieser Datei dokumentiert.
Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/).
---
## [Unreleased]
### Hinzugefuegt
- Dokumentationsstruktur mit mehreren Kategorien
- Automatisches Installationsskript (`install.sh`)
- `.env.example` Vorlage
### Geaendert
- `doc/` Verzeichnis umbenannt zu `docs/`
- README.md ueberarbeitet mit Schnellstart-Anleitung
---
## [0.3.0] - 2026-01-31
### Hinzugefuegt
- **Admin-Dashboard**: Vollstaendige Benutzerverwaltung fuer Admins
- Benutzer sperren/entsperren
- Passwoerter zuruecksetzen (sendet Email)
- Benutzer-Container loeschen
- Benutzer loeschen
- Verifizierungs-Emails erneut senden
- **Email-Verifizierung**: Neue Benutzer muessen Email bestaetigen
- Verifizierungs-Email bei Registrierung
- OneTimeToken-basierte Verifizierung
- verify-success und verify-error Seiten
- **Erster User wird Admin**: Der erste registrierte Benutzer erhaelt Admin-Rechte
- **Benutzer-States**: registered → verified → active
- **Aktivitaetstracking**: `last_used` Feld fuer letzten Container-Zugriff
- **Farbcodierte Benutzerliste** im Admin-Dashboard:
- Gruen: Aktiv, kuerzlich genutzt
- Gelb: Warnung (unverifiziert/inaktiv)
- Rot: Kritisch (lange unverifiziert/sehr lange inaktiv)
- **SMTP-Konfiguration**: Email-Versand fuer Verifizierung und Passwort-Reset
- **Admin-API Endpoints**:
- `GET /api/admin/users` - Alle Benutzer auflisten
- `POST /api/admin/users/{id}/block` - Benutzer sperren
- `POST /api/admin/users/{id}/unblock` - Benutzer entsperren
- `POST /api/admin/users/{id}/reset-password` - Passwort zuruecksetzen
- `POST /api/admin/users/{id}/resend-verification` - Verifizierungs-Email senden
- `DELETE /api/admin/users/{id}/container` - Container loeschen
- `DELETE /api/admin/users/{id}` - Benutzer loeschen
- `POST /api/admin/users/{id}/takeover` - Container-Zugriff (Dummy, Phase 2)
- **Neue Backend-Dateien**:
- `admin_api.py` - Admin-Blueprint mit Endpoints
- `decorators.py` - @admin_required und @verified_required Decorator
- `email_service.py` - Email-Versand-Service
- **Neue Frontend-Seiten**:
- `/admin` - Admin-Dashboard
- `/verify-success` - Email-Verifizierung erfolgreich
- `/verify-error` - Email-Verifizierung fehlgeschlagen
### Geaendert
- `models.py`: Neue Felder (is_admin, is_blocked, state, last_used, verification_token), UserState Enum, AdminTakeoverSession Model
- `config.py`: SMTP-Konfiguration, FRONTEND_URL
- `api.py`: Signup sendet Verifizierungs-Email (kein Auto-Login mehr), Login prueft Blockade und Verifizierung
- `app.py`: Admin-Blueprint registriert
- `.env.example`: SMTP-Variablen hinzugefuegt
- Frontend `api.ts`: Admin-API-Funktionen
- Frontend `use-auth.tsx`: User-Interface mit is_admin und state
- Frontend `signup/page.tsx`: Zeigt Verifizierungs-Hinweise nach Registrierung
- Frontend `login/page.tsx`: Option zum erneuten Senden der Verifizierungs-Email
- Frontend `dashboard/page.tsx`: Admin-Link fuer Admins
### Sicherheit
- Blockierte Benutzer koennen sich nicht mehr anmelden
- Unverifizierte Benutzer koennen sich nicht anmelden
- Admins koennen sich nicht selbst sperren oder loeschen
- Admins koennen andere Admins nicht loeschen
- Verification-Token ist einmalig verwendbar (OneTimeToken)
---
## [0.2.0] - 2026-01-31
### Hinzugefuegt
- Synology NAS / BusyBox Kompatibilitaet im Installationsskript
- Automatische Docker-Version Pruefung (>= 20.10)
- Automatische Docker Compose Version Pruefung (>= 2.0)
- Traefik-Laufzeit-Pruefung im Installationsskript
- Traefik-Netzwerk-Verbindungspruefung
- Build-Fortschrittsanzeige mit gefilterten Logs
- Automatische `git safe.directory` Konfiguration fuer NAS-Umgebungen
### Geaendert
- `auth.py`: Redirect zum Frontend statt Jinja2-Templates
- `docker-compose.yml`: Legacy-Router entfernt (verhindert Redirect-Loop)
- Dockerfiles: Fallback auf `npm install` wenn `package-lock.json` fehlt
- `--progress=plain` Flag entfernt (nicht kompatibel mit aelteren Docker-Versionen)
- Build-Verifikation prueft jetzt Exit-Code UND Image-Existenz
### Behoben
- Redirect-Loop bei `/login` und `/signup` behoben
- `@/lib/utils` Module-Not-Found Fehler in Next.js Projekten
- `.gitignore` blockierte `frontend/src/lib/` und `user-template-next/src/lib/`
- `tsconfig.json` fehlte `baseUrl` fuer TypeScript Path Aliases
- Docker Build meldete faelschlicherweise "OK" bei Fehlern
### Entfernt
- `templates/` Verzeichnis (alte Jinja2 Templates, ersetzt durch Next.js Frontend)
### Sicherheit
- Keine sensiblen Dateien (`.env`, `CLAUDE.md`) werden ins Repository kopiert
---
## [0.1.0] - 2026-01-30
### Hinzugefuegt
- Flask-Anwendung mit User-Management
- Docker-Container-Spawning pro User
- Traefik-Integration via Labels
- SQLite-Datenbank fuer User-Daten
- Next.js Frontend
- REST-API fuer Container-Management
- User-Template (nginx-basiert)
- Health-Check Endpoint
- Docker-Compose Setup
### Sicherheit
- Passwort-Hashing mit Werkzeug
- Session-Cookies mit HttpOnly/Secure
- Resource-Limits fuer Container
---
## [0.0.1] - 2026-01-27
### Hinzugefuegt
- Initiales Projekt-Setup
- Grundlegende Dokumentation
---
## Legende
- **Hinzugefuegt**: Neue Features
- **Geaendert**: Aenderungen an bestehenden Features
- **Veraltet**: Features die bald entfernt werden
- **Entfernt**: Entfernte Features
- **Behoben**: Bugfixes
- **Sicherheit**: Sicherheitsrelevante Aenderungen
---
[Unreleased]: https://gitea.iotxs.de/RainerWieland/spawner/compare/v0.1.0...HEAD
[0.1.0]: https://gitea.iotxs.de/RainerWieland/spawner/releases/tag/v0.1.0
[0.0.1]: https://gitea.iotxs.de/RainerWieland/spawner/releases/tag/v0.0.1