🔒 Authentifizierung: JWT-Bearer-Token in
Chrome Extension:
Basis-URL:
Authorization: Bearer <token>.Chrome Extension:
X-API-Key: FRA-EXT-2024-k8mP9xQvL3nR7wY2Basis-URL:
https://frakladde.shcp.at/apiPOST
/api/auth/loginAnmelden → JWTRequest:
{"username":"admin","password":"FlugringAdmin2024!"}Response:
→ {"ok":true,"data":{"token":"eyJ...","user":{...}}}POST
/api/auth/logoutAbmeldenPOST
/api/auth/change-passwordPasswort ändernRequest:
{"old_password":"...","new_password":"..."}GET
/api/auth/usersAlle Benutzer (nur Admin)POST
/api/auth/usersNeuen Benutzer anlegen (Admin)Request:
{"username":"max","password":"Sicher123!","role":"editor"}GET
/api/fluege?datum=2026-03-22Tagesflüge ladenResponse:
→ [{"id":1,"kz":"D-3321","startzeit":"17:04:00","schueler":"Max Muster",...}]POST
/api/fluegeEinzelflug speichern (Upsert)Request:
{"datum":"2026-03-22","kz":"D-3321","startzeit":"17:04","landezeit":"17:10","schueler":"Max Muster"}POST
/api/fluege/bulkBulk-Import (Extension)Request:
{"datum":"...","fluege":[{"kz":"D-3321","startzeit":"17:04",...}]}
X-API-Key: FRA-EXT-2024-k8mP9xQvL3nR7wY2PUT
/api/fluege/{id}Flug aktualisierenRequest:
{"schueler":"Anna Muster","lehrer":"M. Schima"}DELETE
/api/fluege/{id}Flug löschen (Editor+)GET
/api/personalStammdaten ladenResponse:
→ [{"id":1,"typ":"fluglehrer","name":"Martin Schima",...}]POST
/api/personalStammdaten speichernRequest:
{"typ":"pilot","name":"Max Muster"}DELETE
/api/personal/{id}Stammdaten löschenGET
/api/stats?datum=2026-03-22TagesauswertungResponse:
→ {"by_verein":[...],"by_kz":[...],"by_pilot":[...]}GET
/api/statusAPI-Status prüfenResponse:
→ {"status":"ok","version":"13","time":"..."}📋 Changelog
v1330.03.2026Architektur-Fix: Alle Web-Seiten = reines HTML/JS (kein PHP im Web-Root). PHP nur in /api/. Login via JWT statt PHP-Session. Löst PHP-Quellcode-Problem auf Easyname Shared Hosting.
v1229.03.2026Extension vereinfacht (nur KTrax→DB), API-Key + API-Pfad-Fix.