- 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>
157 lines
5.6 KiB
Markdown
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
|