Watch-Pairing-Flow fuer Self-Service-Onboarding (statt API-Key im Build) #5

Open
opened 2026-05-20 16:42:45 +02:00 by Brummel · 0 comments
Owner

Strategische Antwort auf das 1-APK-pro-User-Modell

Heute ist BuildConfig.API_KEY eine String-Konstante in der APK. Jeder neue Tester = ein dedizierter Build + physischer Pairing-Termin. Skaliert nicht über ~2–3 Tester.

Vorgeschlagenes Modell

  1. Watch zeigt beim Erst-Start einen 6-stelligen Code (Random, ≤5 min gültig).
  2. User loggt sich in die Doctate-Web-UI ein und gibt den Code unter „Watch koppeln" ein.
  3. Server bindet den Code an den eingeloggten User-Slug und stellt einen frischen Device-API-Key aus.
  4. Watch speichert den Key in EncryptedSharedPreferences / DataStore (verschlüsselt mit Android Keystore).
  5. Eine generische APK pro Build reicht für alle Tester.

Implikationen

  • Server: neue Endpoints /api/pair/begin (Code → Pending-Pairing), /api/pair/confirm (Code + Session → Key ausstellen). Pending-Tabelle mit TTL.
  • Watch: Setup-Screen, DataStore-backed Settings-Impl (der Kommentar in clients/wearos/.../settings/Settings.kt:7 deutet das schon an), Pairing-UI.
  • Web-UI: Bestätigungsseite mit Code-Eingabe, im User-Settings-Bereich.
  • Migration: bestehende BuildConfig.API_KEY-APKs bleiben gültig (Fallback), neue APKs nutzen den Pairing-Pfad.

Wann sinnvoll

Ab ~3 Testern oder spätestens, wenn Tester ausserhalb des LAN/physischen Zugriffs onboarden sollen.

## Strategische Antwort auf das 1-APK-pro-User-Modell Heute ist `BuildConfig.API_KEY` eine String-Konstante in der APK. Jeder neue Tester = ein dedizierter Build + physischer Pairing-Termin. Skaliert nicht über ~2–3 Tester. ## Vorgeschlagenes Modell 1. Watch zeigt beim Erst-Start einen 6-stelligen Code (Random, ≤5 min gültig). 2. User loggt sich in die Doctate-Web-UI ein und gibt den Code unter „Watch koppeln" ein. 3. Server bindet den Code an den eingeloggten User-Slug und stellt einen frischen Device-API-Key aus. 4. Watch speichert den Key in `EncryptedSharedPreferences` / DataStore (verschlüsselt mit Android Keystore). 5. **Eine generische APK pro Build reicht für alle Tester.** ## Implikationen - **Server**: neue Endpoints `/api/pair/begin` (Code → Pending-Pairing), `/api/pair/confirm` (Code + Session → Key ausstellen). Pending-Tabelle mit TTL. - **Watch**: Setup-Screen, DataStore-backed `Settings`-Impl (der Kommentar in `clients/wearos/.../settings/Settings.kt:7` deutet das schon an), Pairing-UI. - **Web-UI**: Bestätigungsseite mit Code-Eingabe, im User-Settings-Bereich. - **Migration**: bestehende `BuildConfig.API_KEY`-APKs bleiben gültig (Fallback), neue APKs nutzen den Pairing-Pfad. ## Wann sinnvoll Ab ~3 Testern oder spätestens, wenn Tester ausserhalb des LAN/physischen Zugriffs onboarden sollen.
Brummel added the idea label 2026-05-20 16:42:45 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/doctate#5