- Tabelle user_osm (access_token verschlüsselt at rest via Fernet, Schlüssel aus JWT_SECRET abgeleitet oder OSM_TOKEN_KEY). - Router /api/osm-auth: authorize (signierter state mit user_id+CSRF), callback (Code-Tausch + OSM-Name holen + speichern), status, unlink. - Profil-UI (Settings): "OSM-Konto verknüpfen" / verknüpft-als / trennen, hundehalter-spezifische Motivation. - cryptography in requirements. - Basis für dog=yes-Beiträge + Gamification/Pro (folgt). Staging-Branch. ENV nötig: OSM_CLIENT_ID, OSM_CLIENT_SECRET (Redirect-URI default staging).
19 lines
342 B
Text
19 lines
342 B
Text
fastapi==0.115.0
|
|
Pillow==11.2.1
|
|
pillow-heif==0.22.0
|
|
uvicorn[standard]==0.34.0
|
|
python-multipart==0.0.20
|
|
pydantic[email]==2.10.6
|
|
bcrypt==4.3.0
|
|
PyJWT==2.10.1
|
|
httpx==0.28.1
|
|
cryptography==44.0.0
|
|
openai==1.59.2
|
|
anthropic==0.49.0
|
|
pywebpush==2.0.0
|
|
apscheduler==3.10.4
|
|
odfpy==1.4.1
|
|
polyline==2.0.2
|
|
fpdf2==2.8.3
|
|
python-dateutil>=2.9
|
|
brotli-asgi==1.4.0
|