Move completed wahoo-route-push change to archive and sync delta specs: update wahoo-import for routes_write scope, add new wahoo-route-push capability. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
MODIFIED Requirements
Requirement: Connect Wahoo account
Users SHALL be able to connect their Wahoo account via OAuth2.
Scenario: Connect Wahoo
- WHEN a user clicks "Connect Wahoo" in journal settings
- THEN they are redirected to Wahoo's OAuth authorization page with scopes
workouts_read,user_read,offline_data,routes_write - AND after granting permission, redirected back to the journal
- AND access and refresh tokens are stored in
sync_connections - AND the granted scopes are recorded in
sync_connections.granted_scopesso feature gates can detect missing scopes without round-tripping to Wahoo
Scenario: Disconnect Wahoo
- WHEN a user clicks "Disconnect" next to their Wahoo connection
- THEN the stored tokens are deleted from
sync_connections
Scenario: Token refresh
- WHEN a Wahoo API call fails with an expired token
- THEN the refresh token is used to obtain a new access token automatically
Scenario: Existing connection without routes_write
- WHEN a user connected before the
routes_writescope was added attempts an action that requires it (such as pushing a route) - THEN the system detects the missing scope from
sync_connections.granted_scopesand routes the user through OAuth re-authorization to grant the new scope - AND the existing tokens remain valid until re-auth completes; ongoing read flows (workout import, webhook ingestion) continue to work