feat(oura): capture daily resilience as an ordinal RESILIENCE metric

Oura's daily_resilience collection reports a categorical level — limited,
adequate, solid, strong, exceptional. Encode it ordinally (limited=1 …
exceptional=5) into the numeric measurement value so it fits the existing
model with no new categorical column: add the RESILIENCE measurement type
(migration 0186), fetch and map daily_resilience in the Oura sync, and skip
an unknown or missing level rather than coercing it to zero.

RESILIENCE_LEVELS in the Oura client is the single source of truth for the
encoding. The day-keyed externalId keeps a re-sync idempotent so a re-scored
day overwrites in place. Extend the measurement-type label, unit, range,
category, chart-token, and PR-direction maps; add the metric label across all
six locales.
This commit is contained in:
Marc-André Bombeck committed 2026-06-21 10:44:15 +02:00
1 parent 3faafef0df
commit aff4e9abeb
21 files changed
+338 -24

No files matched your search

+8
View File
@@ -1669,6 +1669,7 @@ paths:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
- in: query
name: from
schema:
@@ -1855,6 +1856,7 @@ paths:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
value:
type: number
measuredAt:
@@ -4957,6 +4959,7 @@ paths:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
description: "The measurement type to read (single metric — no fan-out). Closed enum: an unknown type 422s."
required: true
description: "The measurement type to read (single metric — no fan-out). Closed enum: an unknown type 422s."
@@ -10528,6 +10531,7 @@ components:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
value:
type: number
unit:
@@ -10841,6 +10845,7 @@ components:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
additionalProperties:
type: array
items:
@@ -10917,6 +10922,7 @@ components:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
value:
type: number
description: Daily mean (spot metrics) or SUM (cumulative).
@@ -11014,6 +11020,7 @@ components:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
description: Per-type daily series, keyed by MeasurementType.
required:
- series
@@ -11232,6 +11239,7 @@ components:
- CARDIO_LOAD
- SLEEP_SCORE
- BODY_TEMPERATURE_DEVIATION
- RESILIENCE
value:
type: number
unit: