Files
timemaster/DEVLOG.md
T
patrick 0f83d13c0c feat(kiosk): Stufe 2 – Ed25519-Auth, CLI-Tool, neue KioskDevicesPage
2A – Backend Ed25519-Verifizierung:
- app/core/kiosk_security.py (NEU): verify_kiosk_request() Dependency
  - Timestamp-Check (30s Drift), Nonce-Cache (Redis/In-Memory), IP-Whitelist
  - Ed25519-Signatur über METHOD+PATH+TIMESTAMP+NONCE+sha256(BODY)
  - PEM + OpenSSH Key-Format unterstützt
- app/routers/kiosk.py: approve/revoke Endpunkte, POST /heartbeat (Ed25519-signiert)
- app/services/kiosk_service.py: token-basierte Methoden entfernt, approve/revoke/heartbeat
- app/schemas/kiosk.py: KioskDeviceOut mit heartbeat_status, HeartbeatRequest/Response

2B – CLI-Tool:
- cli.py (NEU, 529 Zeilen): Typer-CLI mit kiosk add/list/approve/revoke/info
  - Public-Key-Fingerprint (SHA256), Rich-Tabellen, CIDR-Validierung
  - Direkter DB-Zugriff mit RLS-Bypass

2C – Frontend:
- KioskDevicesPage.tsx: Zwei-Tab-Layout (Wartet/Aktiv), Status-Ampel,
  Auto-Refresh 30s, Ed25519-Workflow (kein Token mehr)
- Layout.tsx: KioskHealthBadge (online/total, 30s Refresh, nur COMPANY_ADMIN)

requirements.txt: typer>=0.12.0, rich>=13.7.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 12:13:46 +02:00

907 lines
21 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# TimeMaster Dev Log
## 2026-03-28 21:59 22:02 (3m)
**Beschreibung:** Projekte-Feature entfernen, Timetrack einbauen
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-03-28 21:59 22:02 (3m)
**Beschreibung:** Projekte-Feature entfernen, Timetrack einbauen
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-03-28 21:59 22:02 (3m)
**Beschreibung:** Projekte-Feature entfernen, Timetrack einbauen
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-03-28 22:22 22:22 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-03-28 22:24 22:25 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 14:31 19:45 (5h 14m)
**Beschreibung:** Claude Code Session
**Projekt:** archivmail
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 19:46 19:47 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 19:49 19:49 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 19:52 19:52 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 19:54 19:56 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 19:58 20:00 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:06 20:06 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:06 20:08 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:11 20:11 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:12 20:12 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:12 20:12 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:14 20:14 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:15 20:15 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:17 20:17 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:19 20:22 (3m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:38 20:38 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:39 20:39 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 20:46 20:50 (4m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 21:05 21:08 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 21:09 21:13 (3m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 21:17 21:18 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-04-06 21:27 21:31 (3m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:06 17:07 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:10 17:11 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:20 17:20 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:27 17:27 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:31 17:32 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:39 17:40 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:41 17:44 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:47 17:49 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 17:57 17:58 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 18:18 18:19 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 18:27 18:32 (5m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 19:50 19:52 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 19:52 19:53 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-05 22:43 10:21 (11h 37m)
**Beschreibung:** Claude Code Session
**Projekt:** frontend
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-06 17:20 17:34 (14m)
**Beschreibung:** Claude Code Session
**Projekt:** frontend
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-06 17:34 17:35 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-06 22:47 22:51 (4m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-06 22:54 22:55 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-06 23:00 23:00 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-06 23:00 23:10 (9m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-23 19:20 19:21 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-23 20:02 20:03 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** frontend
### Commits
- 1fedd68 Initial commit TimeMaster Zeiterfassung & HR-Tool
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-23 20:08 20:09 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
Keine Änderungen ermittelbar.
---
## 2026-05-23 20:11 20:12 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 39a0e37 .gitignore und DEVLOG aktualisieren
### Geänderte Dateien
- .gitignore | 4 ++++
- DEVLOG.md | 22 ++++++++++++++++++++++
---
## 2026-05-23 20:33 21:07 (34m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- fbc04bc agent-07 phase 2: fix test isolation + CSV import UI
### Geänderte Dateien
- DEVLOG.md | 12 ++
- backend/app/services/user_import_service.py | 6 +-
- backend/tests/conftest.py | 10 +-
- backend/tests/test_personnel_number.py | 27 ++--
- frontend/src/pages/UsersPage.tsx | 186 +++++++++++++++++++++++++++-
---
## 2026-05-23 21:07 21:08 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 12 ++
- backend/app/services/user_import_service.py | 6 +-
- backend/tests/conftest.py | 10 +-
- backend/tests/test_personnel_number.py | 27 ++--
- frontend/src/pages/UsersPage.tsx | 186 +++++++++++++++++++++++++++-
---
## 2026-05-23 21:08 21:08 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 12 ++
- backend/app/services/user_import_service.py | 6 +-
- backend/tests/conftest.py | 10 +-
- backend/tests/test_personnel_number.py | 27 ++--
- frontend/src/pages/UsersPage.tsx | 186 +++++++++++++++++++++++++++-
---
## 2026-05-23 21:09 21:16 (7m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 8e5e76d add deployment updater scripts
### Geänderte Dateien
- scripts/check_migrations.sh | 344 +++++++++++++++
- update.sh | 1007 ++++++++++++++++++++-----------------------
---
## 2026-05-23 21:23 21:31 (8m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 3dfcff3 update.sh: switch backend sync to git pull instead of rsync
### Geänderte Dateien
- update.sh | 53 +++++++++++++++++++++++------------------------------
---
## 2026-05-23 21:47 21:48 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- update.sh | 53 +++++++++++++++++++++++------------------------------
---
## 2026-05-23 21:51 21:58 (7m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 6d4b8a9 agent-rls: PostgreSQL Row Level Security für Mandanten-Isolation
### Geänderte Dateien
- DEVLOG.md | 79 ++++++++
- backend/app/core/database.py | 6 +
- backend/app/core/dependencies.py | 18 ++
- backend/migrations/env.py | 4 +
- .../migrations/versions/0024_row_level_security.py | 208 +++++++++++++++++++++
- backend/tests/conftest.py | 4 +
---
## 2026-05-23 22:00 22:35 (34m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- dd3e069 fix: router db.refresh() nach commit bricht RLS-Kontext
### Geänderte Dateien
- DEVLOG.md | 16 ++
- backend/app/routers/absences.py | 10 -
- backend/app/routers/caldav.py | 2 -
- backend/app/routers/kiosk.py | 3 -
- backend/app/routers/ldap.py | 2 -
- backend/app/routers/projects.py | 2 -
- backend/app/routers/smtp.py | 1 -
- backend/app/routers/time_entries.py | 10 -
- backend/migrations/env.py | 4 -
- .../migrations/versions/0024_row_level_security.py | 223 +++++----------------
- backend/tests/conftest.py | 48 +++++
- backend/tests/test_rls.py | 190 ++++++++++++++++++
---
## 2026-05-23 22:43 22:52 (9m)
**Beschreibung:** Claude Code Session
**Projekt:** frontend
### Commits
- eb12280 fix: 8 pre-existing Test-Fehler behoben
### Geänderte Dateien
- backend/app/services/absence_service.py | 3 ++-
- backend/tests/test_absences.py | 30 +++++++++++++++++++++++++-----
- backend/tests/test_reports.py | 2 +-
- backend/tests/test_time.py | 25 ++++++++++++++++++++++---
---
## 2026-05-23 23:08 23:08 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/services/absence_service.py | 3 ++-
- backend/tests/test_absences.py | 30 +++++++++++++++++++++++++-----
- backend/tests/test_reports.py | 2 +-
- backend/tests/test_time.py | 25 ++++++++++++++++++++++---
---
## 2026-05-23 23:12 10:21 (11h 09m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/services/absence_service.py | 3 ++-
- backend/tests/test_absences.py | 30 +++++++++++++++++++++++++-----
- backend/tests/test_reports.py | 2 +-
- backend/tests/test_time.py | 25 ++++++++++++++++++++++---
---
## 2026-05-24 10:26 11:29 (1h 03m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- ada1b51 docs: vollständige Projektdokumentation hinzugefügt
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 11:43 11:43 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 11:46 11:47 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 11:48 11:49 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 11:51 11:51 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 11:54 11:55 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 11:55 11:56 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 11:57 11:57 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 64 +++
- docs/api.md | 1375 ++++++++++++++++++++++++++++++++++++++++++++++++++
- docs/architecture.md | 461 +++++++++++++++++
- docs/deployment.md | 429 ++++++++++++++++
- docs/development.md | 531 +++++++++++++++++++
- frontend/DEVLOG.md | 22 +
---
## 2026-05-24 12:03 12:03 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- DEVLOG.md | 128 +++++++
- backend/app/routers/absence.py | 159 +++++++++
- backend/app/routers/absence_service.py | 615 ++++++++++++++++++++++++++++++++
- backend/requirements.txt | 1 +
- backend/tests/test_reports.py | 44 +++
- frontend/src/pages/TimeTrackingPage.tsx | 521 +++++++++++++++++++--------
---
## 2026-05-24 12:04 12:08 (4m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 981bde3 feat(kiosk): Migration 0021 Ed25519-Auth, Status-Enum, Heartbeat, IP-Whitelist
### Geänderte Dateien
- backend/app/models/company.py | 5 +
- backend/app/models/kiosk_device.py | 47 ++++++-
- backend/migrations/versions/0021_kiosk_security.py | 143 +++++++++++++++++++++
- .../migrations/versions/0022_sick_note_config.py | 2 +-
---
## 2026-05-24 12:09 12:11 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/models/company.py | 5 +
- backend/app/models/kiosk_device.py | 47 ++++++-
- backend/migrations/versions/0021_kiosk_security.py | 143 +++++++++++++++++++++
- .../migrations/versions/0022_sick_note_config.py | 2 +-
---
## 2026-05-24 12:13 12:13 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/models/company.py | 5 +
- backend/app/models/kiosk_device.py | 47 ++++++-
- backend/migrations/versions/0021_kiosk_security.py | 143 +++++++++++++++++++++
- .../migrations/versions/0022_sick_note_config.py | 2 +-
---