trails/openspec/specs/journal-auth/spec.md
Ullrich Schäfer 21a00afa85
Archive legal-disclaimers change and sync specs
Move completed legal-disclaimers change to archive, apply deltas to
main specs: append "Terms acknowledgement at signup" requirement to
journal-auth and create the legal-disclaimers capability spec
covering Impressum, Terms, Datenschutzerklärung, alpha banner, and
footer links.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 02:17:48 +02:00

1.3 KiB

Purpose

Authentication for the Journal app, including OAuth token storage for external services in the sync_connections table.

Requirements

Requirement: Store external service tokens

The journal auth system SHALL store OAuth tokens for external services alongside user credentials.

Scenario: Wahoo token storage

  • WHEN a user connects their Wahoo account
  • THEN access token, refresh token, expiry time, and Wahoo user ID are stored in the wahoo_tokens table
  • AND tokens are associated with the journal user ID

Requirement: Terms acknowledgement at signup

The registration form SHALL require explicit acknowledgement of the Terms of Service before an account can be created.

Scenario: Checkbox required

  • WHEN a user views the registration form
  • THEN they see a required checkbox labeled "I have read and agree to the Terms of Service, including that trails.cool is in alpha and my data may be reset"
  • AND the checkbox label links to the Terms page

Scenario: Cannot submit without acknowledgement

  • WHEN a user attempts to register without checking the acknowledgement box
  • THEN the form blocks submission and shows a validation message

Scenario: Acknowledgement recorded

  • WHEN a user successfully registers
  • THEN the current timestamp is stored in users.terms_accepted_at