6d224d51c5
- GarminConnectConfig model stores encrypted credentials and OAuth token - garmin_connect_sync service: token-based auth with password fallback, activity FIT download + queue, daily wellness from JSON API - Celery beat schedule: sync_all_garmin_connect fires every hour - New API router /api/garmin-sync: config CRUD, manual trigger - Beat container added to docker-compose.yml and docker-compose.deploy.yml - ProfilePage: Garmin Connect section with connect/update/disconnect and Sync now Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
515 B
Plaintext
27 lines
515 B
Plaintext
fastapi==0.111.0
|
|
uvicorn[standard]==0.30.0
|
|
sqlalchemy[asyncio]==2.0.30
|
|
asyncpg==0.29.0
|
|
alembic==1.13.1
|
|
pydantic==2.7.1
|
|
pydantic-settings==2.2.1
|
|
python-jose[cryptography]==3.3.0
|
|
passlib==1.7.4
|
|
bcrypt==4.0.1
|
|
python-multipart==0.0.9
|
|
httpx==0.27.0
|
|
redis[hiredis]==5.0.4
|
|
celery[redis]==5.4.0
|
|
garmin-fit-sdk==21.195.0
|
|
gpxpy==1.6.2
|
|
numpy==1.26.4
|
|
scipy==1.13.0
|
|
geopy==2.4.1
|
|
polyline==2.0.2
|
|
Pillow==10.3.0
|
|
aiofiles==23.2.1
|
|
python-dateutil==2.9.0
|
|
pytz==2024.1
|
|
psycopg2-binary==2.9.9
|
|
garminconnect==0.2.24
|
|
cryptography==42.0.8 |