March Updates

Check out what we've been doing at Terra over the month of March!

Backend 💾


New Integrations

  • Added integration with Cronometer
  • Added integration with MyFitnessPal

New Features

  • Added the ability for webhook requests to be retried if the target server did not respond with a 2xx status code. If a webhook request fails then it will be re-sent on an exponential backoff schedule for up to 6 times before giving up.
  • Added API versioning to prevent breaking changes from being pushed and potentially breaking pre-existing implementations. The version can be changed on a per dev ID basis upon request in our discord.
  • Added ability to filter the scopes requested during authentication to be a specific subset of all the scopes available from the provider upon request in our discord.
  • Added deduplication for all data types to prevent sending duplicate payloads to webhook URLs where it would not be expected.
  • Added readiness data to daily payloads where available from providers.
  • Added support for deauthenticating users through the widget.
  • Added support for localising the widget into languages other than English.

Improvements

  • New data model implementation for V2 of the API which improves consistency across field names and models.
  • Improved Garmin historical data fetching to allow up to 5 years of data to be requested for a given user using their updated backfill API.
  • Improves the appearance and functionality of the various widget provider login pages.
  • Improved the data generator to prevent sending of invalid user IDs and providers, as well as adding in the data types that were missing.
  • Improves FreestyleLibre integration by reducing the amount of time it takes to request data where possible.
  • Providers are now automatically excluded from the widget where they would not be applicable for the user's device - for example removing Apple as a provider if the user is using an Android phone.
  • Improve widget experience by removing the provider select page if only a single provider was given when the session was created.

Bugfixes

  • Fixed issue with Peloton activity duplication causing ongoing activities to be sent to the webhook URL instead of completed activities.
  • Fixed issue with FreestyleLibre causing 6 hour chunks of data to be missing from payloads depending on the user's timezone.