feat(admin): SUPER_ADMIN TLS-Zertifikat-Status + Renewal-Trigger
Neuer Router /admin/tls (SUPER_ADMIN only, AuditLog, Rate-Limit 5/hour): - GET /admin/tls/status – erkennt proxy/certbot/internal-Modus, liest Ablaufdatum via openssl x509 -enddate - POST /admin/tls/renew/certbot – ruft setup-tls.sh <domain> auf - POST /admin/tls/renew/internal – ruft setup-tls-internal.sh <hostname> [ip] auf, reloaded nginx danach Läuft mit den Root-Rechten des bestehenden timemaster.service (User=root, unverändert) - Angriffsfläche dadurch begrenzt auf SUPER_ADMIN-Auth + Domain/Hostname-Validierung (Regex, kein Shell-Interpolieren, subprocess mit Argument-Liste statt shell=True). Frontend: neuer Tab "Server / TLS" in TenantsPage – Status-Anzeige + zwei Formulare (öffentlich/intern). 3 neue Tests in test_tls_admin.py (Rollen-Gate, Status im Testcontext, Input-Validierung). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LTxkZEUdfgMxZvHPiZJ8bV
This commit is contained in:
@@ -2722,3 +2722,85 @@ Keine Commits in dieser Session.
|
||||
- backend/app/routers/hours_payouts.py | 22 ++++++++++++----------
|
||||
|
||||
---
|
||||
## 2026-08-05 19:01 – 19:17 (16m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** timemaster
|
||||
|
||||
### Commits
|
||||
- edb727e fix(security): python-jose CVE-2024-33663 durch pyjwt ersetzt, Deps gepinnt
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 36 ++++++++++++++++++++++++++++++++++++
|
||||
- backend/app/core/dependencies.py | 2 +-
|
||||
- backend/app/core/security.py | 3 ++-
|
||||
- backend/app/routers/auth.py | 2 +-
|
||||
- backend/requirements.txt | 58 +++++++++++++++++++++++++++++-----------------------------
|
||||
- nginx.conf | 11 ++++++++++-
|
||||
|
||||
---
|
||||
## 2026-08-05 19:18 – 19:20 (1m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** timemaster
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 36 ++++++++++++++++++++++++++++++++++++
|
||||
- backend/app/core/dependencies.py | 2 +-
|
||||
- backend/app/core/security.py | 3 ++-
|
||||
- backend/app/routers/auth.py | 2 +-
|
||||
- backend/requirements.txt | 58 +++++++++++++++++++++++++++++-----------------------------
|
||||
- nginx.conf | 11 ++++++++++-
|
||||
|
||||
---
|
||||
## 2026-08-05 19:23 – 19:23 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** timemaster
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- DEVLOG.md | 36 ++++++++++++++++++++++++++++++++++++
|
||||
- backend/app/core/dependencies.py | 2 +-
|
||||
- backend/app/core/security.py | 3 ++-
|
||||
- backend/app/routers/auth.py | 2 +-
|
||||
- backend/requirements.txt | 58 +++++++++++++++++++++++++++++-----------------------------
|
||||
- nginx.conf | 11 ++++++++++-
|
||||
|
||||
---
|
||||
## 2026-08-05 19:33 – 19:35 (1m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** timemaster
|
||||
|
||||
### Commits
|
||||
- 319e070 feat(tls): optionales certbot-Setup vorbereitet (Option A)
|
||||
|
||||
### Geänderte Dateien
|
||||
- nginx.conf | 13 +++++++------
|
||||
- setup-tls.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
---
|
||||
## 2026-08-05 19:35 – 19:36 (1m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** timemaster
|
||||
|
||||
### Commits
|
||||
- 9c86cbc feat(tls): optionales Setup für interne CA vorbereitet
|
||||
|
||||
### Geänderte Dateien
|
||||
- setup-tls-internal.sh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
---
|
||||
## 2026-08-05 19:37 – 19:37 (0m)
|
||||
**Beschreibung:** Claude Code Session
|
||||
**Projekt:** timemaster
|
||||
|
||||
### Commits
|
||||
Keine Commits in dieser Session.
|
||||
|
||||
### Geänderte Dateien
|
||||
- setup-tls-internal.sh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user