Files
owain 6d224d51c5
Build and push images / validate (push) Successful in 2s
Build and push images / build-backend (push) Successful in 7s
Build and push images / build-worker (push) Successful in 6s
Build and push images / build-frontend (push) Successful in 8s
Add Garmin Connect auto-sync via python-garminconnect
- 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>
2026-06-07 00:08:12 +01:00

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