feat(oura): import workouts and intraday heart rate

Workouts from /v2/usercollection/workout land as Workout rows keyed on
the Oura id, with the activity mapped onto the canonical sport set and
the raw label, intensity and recording source kept in metadata. Heart
rate from /v2/usercollection/heartrate lands as PULSE, streamed page by
page and written in bounded batches, first write wins per instant. The
hourly window for heart rate is hours, not days: six by default,
reaching back to the newest reading after a gap, at most 72.

Both collections sit behind their own scopes (workout, heartrate). A
grant from before they were requested answers 401 naming the scope; that
is recorded as a scope note on the card, never as a failure or a
reconnect. Collection refusals carry Retry-After on a 429.
This commit is contained in:
Marc-André Bombeck committed 2026-10-21 19:35:47 +02:00
1 parent 9a3523a498
commit 7585994697
24 files changed
+1312 -179

No files matched your search

+2
View File
@@ -79471,6 +79471,8 @@ components:
- vo2max
- cardio_age
- resilience
- workout
- heartrate
hasToken:
description: Nightscout only.
type: boolean