Something went wrong

Thank you for being patient! We're working hard on resolving the issue

Crate overview - Lona Docs Log in

tento-garmin

Garmin Connect SDK + connector + sync-plugin.

The default build is just the SDK (HTTP client, OAuth, model types). Two opt-in features wire it into the row-schema dispatch system:

  • connector — pulls in tento-lona-connector, exposes tento_garmin::connector::{Garmin, GarminClient, GarminBackendDeps, GarminAuth, GarminParams} plus per-metric Row impls (sleep, stress, hrv, each with a sibling :logs row).

  • sync-plugin — pulls in lona-sync, exposes tento_garmin::sync_plugin::{GarminSyncProvider, GarminSyncExecutor, GarminApiContext, GarminSyncDeps, RowSyncState}. Drives the orchestrator's two-stage viewportbackfill sync over Garmin's daily APIs.

Garmin is the canonical example of the thin-deps + provider drives sync pattern: Row bodies build per-day cells inside Row::sync and call ctx.deps.persist_cells(...). See the connector docs for the integration contract.