Transparencia de la API de Strava

Cómo utiliza Trailboard técnicamente la API de Strava

Esta página describe el recorrido real de los datos entre Strava y Trailboard. Está destinada a los usuarios y a los equipos técnicos que revisan la aplicación.

Estado del código fuente verificado el 1 de agosto de 2026

Conexión
Strava sigue siendo opcional
Acceso API
Solo lectura
Visualización
Datos de actividad aislados por atleta
Eventos
Webhook y cola de trabajos duradera

1. Alcance de la integración

Trailboard es una herramienta independiente para preparar carreras de trail. Conectar Strava es opcional y sirve para mostrar, en el espacio privado del atleta, copias transitorias de sus actividades autorizadas e indicadores descriptivos personales.

Trailboard no crea, modifica ni elimina actividades en Strava. La aplicación no utiliza actividades de Strava para crear una clasificación pública entre atletas.

El alcance público presentado a Strava se limita a los usos descritos en esta página. Cualquier ampliación más allá de estos usos requiere confirmación escrita de Strava antes de activarse para los usuarios.

2. Autorización OAuth

  • El botón de conexión redirige el navegador a la pantalla OAuth oficial de Strava.
  • Los permisos solicitados por el código son “read” y “activity:read_all”. El segundo permite que un atleta autorice el acceso a sus actividades privadas para su propio espacio Trailboard.
  • El callback OAuth valida un valor de estado aleatorio y de un solo uso contra CSRF antes de intercambiar el código de autorización.
  • Las nuevas escrituras de tokens de acceso y actualización utilizan cifrado AES-256-GCM en PostgreSQL. Los secretos nunca aparecen en esta página pública ni en las respuestas del frontend.

3. Datos de Strava leídos y finalidad

Trailboard solicita únicamente los recursos utilizados por sus funciones personales actuales. El código no tiene permisos para escribir actividades de Strava.

Identidad técnica del atleta

Datos : Identificador de Strava necesario para el vínculo OAuth.

Finalidad : Vincular la cuenta autorizada a una identidad interna. El nombre, apellidos, foto, ciudad y país recibidos de Strava no se copian al perfil compartible de Trailboard.

Resúmenes de actividad

Datos : Identificador, nombre, deporte, fecha, duración, distancia, desnivel, estadísticas disponibles y visibilidad.

Finalidad : Mostrar actividades y calcular totales, promedios, tendencias por periodo, récords y progreso hacia objetivos personales únicamente para el atleta conectado. Estos resultados no se comparan entre miembros ni se usan para análisis internos, mejora del producto o funciones no declaradas en esta página.

Detalles, esfuerzos y streams

Datos : Detalle de actividad, splits, esfuerzos, GPS, altitud, tiempo, velocidad y streams de sensores disponibles según los permisos y el dispositivo.

Finalidad : Mostrar el mapa, el perfil y los detalles brutos relacionados con esa actividad.

Fotos y comentarios

Datos : Fotos y comentarios asociados a una actividad cuando están disponibles mediante la API.

Finalidad : Completar la vista privada del detalle de actividad.

4. Webhooks y sincronización

  • Trailboard expone un callback público de servidor para los eventos de Strava. El secreto de verificación nunca se publica.
  • Un evento de creación o actualización de actividad encola una actualización específica. Una eliminación encola el borrado local. La desautorización del atleta encola la eliminación de la conexión y de las actividades sincronizadas.
  • El procesamiento pesado se guarda en una cola duradera de PostgreSQL para que el callback responda rápidamente, los reintentos estén controlados y un reinicio no pierda el evento.
  • No se ejecuta ningún polling periódico de la API de Strava. Las llamadas proceden únicamente de la importación inicial, una acción explícita del usuario o un evento webhook específico.
  • La suscripción webhook de la aplicación de producción se comprueba por separado de la presencia del callback en el código.

5. Protección de las cuotas

  • Las lecturas del panel sirven primero los datos de PostgreSQL y no realizan una solicitud bloqueante a Strava en cada visualización.
  • Los bloqueos PostgreSQL impiden sincronizaciones simultáneas para el mismo atleta o aplicación.
  • Cuando Strava responde 429, Trailboard guarda un periodo de espera para la aplicación afectada y aplaza los trabajos hasta la ventana de reintento.
  • Las importaciones explícitas están limitadas y se detienen cuando encuentran un límite.

6. Desautorización y eliminación

  • Un evento de desautorización de Strava cancela las sincronizaciones activas y elimina la conexión, las copias Strava y los datos personales derivados correspondientes.
  • Eliminar una cuenta Trailboard borra transaccionalmente la cuenta y los registros vinculados, confirma la supresión al usuario y registra de forma duradera la revocación remota del token Strava.
  • Una eliminación de actividad recibida por webhook elimina la copia local que pertenece a ese atleta.
  • Cada copia Strava tiene su propio sello de tiempo de obtención y caduca como máximo siete días después, independientemente de la fecha de la actividad.

7. Seguridad y aislamiento

  • Cada ruta de actividad comprueba la identidad Trailboard actual y filtra los datos por identificador de atleta.
  • El repositorio cifra las nuevas escrituras OAuth con AES-256-GCM y serializa las actualizaciones de tokens para evitar escrituras concurrentes. La producción debe comprobarse por separado para confirmar que no queda ningún valor antiguo en texto claro.
  • Los callbacks y trabajos incluyen una generación de conexión: un evento antiguo no puede actuar sobre una reconexión más reciente.
  • Trailboard no vende datos de Strava ni los utiliza para publicidad dirigida.

8. Aplicación Strava registrada

Todas las conexiones y reconexiones nuevas usan la única aplicación Trailboard registrada ante Strava.

La interfaz pública no solicita ni acepta un Client ID o Client Secret perteneciente a un usuario. Los campos técnicos heredados y desactivados solo pueden permanecer cifrados hasta completar una revocación remota o su eliminación.

9. Revisión pública del proceso Strava

  • Antes de cada nueva presentación a Strava y después de cualquier cambio en la integración, Trailboard revisa el código afectado frente a la API Policy, el API Agreement y la documentación para desarrolladores vigentes.
  • La revisión abarca OAuth y los permisos, el aislamiento por atleta, los datos y finalidades declarados, las estadísticas privadas, los webhooks, las cuotas, los tokens inválidos, la retención según la edad de la copia, la desautorización y la eliminación.
  • Las pruebas se separan por nivel: tests y build del código, migraciones y configuración, y después verificación real en producción. La existencia de un callback no demuestra una suscripción activa y un despliegue no demuestra un evento de extremo a extremo.
  • Todo uso ambiguo o que exceda los textos publicados permanece desactivado hasta obtener confirmación escrita de Strava. La fecha de esta página se actualiza cuando cambia el proceso o su alcance.

10. Pruebas que deben verificarse antes de volver a presentar la solicitud

  • La aplicación ha alcanzado la capacidad de atletas que muestra el panel de desarrolladores de Strava.
  • La suscripción webhook de producción está activa y los eventos create, update, delete y deauthorization se observan de extremo a extremo.
  • El callback devuelve el código y el tiempo de respuesta exigidos por la documentación actual de Strava.
  • Los tokens inválidos o atletas inactivos se identifican y eliminan sin depender únicamente de que el usuario abra Trailboard.
  • La retención, actualización y eliminación están demostradas para cada copia directa o derivada.

Referencias oficiales

Esta descripción debe leerse siempre junto con las condiciones vigentes de Strava.