Hinweis: #83 (Segment-Scan für derive_device_prefix) wurde in a714043 umgesetzt. Die Topic-Tree API kann jetzt auf die verbesserte Device-Grouping-Logik aufbauen.
Umgesetzt in a714043.
Änderungen:
_DEVICE_PATTERNS(Start-Match-Regex) ersetzt durch_NAMESPACE_SEGMENTS+_DEVICE_ID_PATTERNS(Segment-basiert)derive_device_prefix()komplett…
Umgesetzt in 946a560.
Was wurde gemacht:
Login-Page Update
- E-Mail/Username + Passwort-Felder (war vorher nur Passwort)
- Error-Handling für falsche Credentials beibehalten
###…
Prerequisite #81 ist abgeschlossen (51f268e). User-CRUD API ist jetzt verfügbar:
GET/POST /api/v1/users+GET/PUT/DELETE /api/v1/users/{id}GET/PUT /api/v1/users/me- `POST /api/v1/users…
Umgesetzt in 51f268e.
Neue Dateien
api/routes/users.py– 8 Endpoints (CRUD + /me + reset-password)services/user_service.py– Business-Logik mit RBAC + Tenant-Isolation
###…
⚠️ Breaking Change aus #80 (0e983c6): Login-API hat sich geändert.
Alt: POST /auth/login {"password": "..."}
Neu: POST /auth/login {"email_or_username": "...", "password": "..."}…
Prerequisite #80 ist abgeschlossen (0e983c6). UserRepository existiert jetzt mit Basis-Methoden (get_by_email_or_username, get_by_id, count, update_last_login, update_password_hash).…
Umgesetzt in 0e983c6.
Änderungen
AuthService Rewrite
verify_password→verify_password_hash(plain, stored_hash)(static, arbeitet mit beliebigem Hash)- Constructor braucht kein…
Prerequisite #79 ist abgeschlossen (f08156f). AuthContext Dataclass + require_auth Rewrite sind implementiert:
require_authgibtAuthContext(user_id, tenant_id, role)zurück- JWT-Payload…