docs(auth): Spec für Anmelde-Einstieg und App Links (Issue #49) #55

Merged
cschlaefke merged 3 commits from docs/49-mobil-login-spec into main 2026-11-04 00:29:41 +00:00
Owner

Refs #49 (kein Closes: #49 wird erst nach Umsetzung und Gerätetest geschlossen).

Spec: docs/specs/49-mobil-anmeldung-app-links.md. Zur Freigabe durch Chris, vor jeder Umsetzung.

Empfehlung der Spec

  • Einstieg: Hinweis-Karte (SignInPrompt) auf der Startseite für abgemeldete Nutzer, auf allen Plattformen inkl. Web (QUE-09 Krit. 13).
  • Rückweg aus Mails: Universal Links (iOS) und App Links (Android) nur für /auth/confirm; kein eigenes URL-Schema, keine Backend-Änderung, Knopfdruck vor verifyOTP (E3) bleibt.
  • Schnitt: PR A „Einstieg“ sofort umsetzbar; PR B „App Links“ nach Spike S1, iOS-Verdrahtung erst nach C1.

Review

code-reviewer: freigabefähig nach Korrekturen (W1–W5, H1–H7), eingearbeitet in 34bba34. Spec #1 (E4, § 6 Mail-Links/Autofill) ist mit Verweis als abgelöst markiert und im Änderungsprotokoll vermerkt (e353221). Die Nacharbeit hat kein Reviewer erneut gelesen.

Fragen an Chris

  • C1/W1 zuerst: Ist das im iOS-Projekt eingetragene Team KSX6GJY9C5 ein bezahltes Apple-Developer-Team? Sonst brechen associated-domains-Entitlements das Signieren für Geräte.
  • F1–F11 (je mit Empfehlung in § 9), C2–C7 (Play Console, Bundle-ID, Produktions-Domain, Gerätetest) sind Chris-Aufgaben.
  • Empfohlen: ADR „Deep-Link-Strategie“ nach Freigabe.

Nicht geprüft

Alle Spike-Annahmen (Personal Team ohne Associated Domains, Deep-Linking-Defaults in Flutter 3.47, build web kopiert .well-known, UIScene-Kaltstart) sind in der Spec als „zu bestätigen in S1“ gekennzeichnet; kein Gerät, kein Build ausgeführt.

🤖 Generated with Claude Code

Refs #49 (kein `Closes`: #49 wird erst nach Umsetzung und Gerätetest geschlossen). Spec: `docs/specs/49-mobil-anmeldung-app-links.md`. Zur **Freigabe durch Chris**, vor jeder Umsetzung. ## Empfehlung der Spec - **Einstieg:** Hinweis-Karte (`SignInPrompt`) auf der Startseite für abgemeldete Nutzer, auf allen Plattformen inkl. Web (QUE-09 Krit. 13). - **Rückweg aus Mails:** Universal Links (iOS) und App Links (Android) nur für `/auth/confirm`; kein eigenes URL-Schema, keine Backend-Änderung, Knopfdruck vor `verifyOTP` (E3) bleibt. - **Schnitt:** PR A „Einstieg“ sofort umsetzbar; PR B „App Links“ nach Spike S1, iOS-Verdrahtung erst nach C1. ## Review `code-reviewer`: freigabefähig nach Korrekturen (W1–W5, H1–H7), eingearbeitet in 34bba34. Spec #1 (E4, § 6 Mail-Links/Autofill) ist mit Verweis als abgelöst markiert und im Änderungsprotokoll vermerkt (e353221). Die Nacharbeit hat kein Reviewer erneut gelesen. ## Fragen an Chris - **C1/W1 zuerst:** Ist das im iOS-Projekt eingetragene Team `KSX6GJY9C5` ein bezahltes Apple-Developer-Team? Sonst brechen `associated-domains`-Entitlements das Signieren für Geräte. - F1–F11 (je mit Empfehlung in § 9), C2–C7 (Play Console, Bundle-ID, Produktions-Domain, Gerätetest) sind Chris-Aufgaben. - Empfohlen: ADR „Deep-Link-Strategie“ nach Freigabe. ## Nicht geprüft Alle Spike-Annahmen (Personal Team ohne Associated Domains, Deep-Linking-Defaults in Flutter 3.47, `build web` kopiert `.well-known`, UIScene-Kaltstart) sind in der Spec als „zu bestätigen in S1“ gekennzeichnet; kein Gerät, kein Build ausgeführt. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
cschlaefke added 3 commits 2026-11-03 20:02:04 +00:00
Spec for issue #49: sign-in prompt on the public home screen and
Universal Links / App Links for /auth/confirm on iOS and Android,
web fallback unchanged. Includes options, test strategy, task split
and tasks only Chris can do (Apple/Google accounts, domain files,
SITE_URL on prod).

Refs #49

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Existing team KSX6GJY9C5 (C1), defer CODE_SIGN_ENTITLEMENTS until
the team is confirmed, local mobile builds mandatory, email_change
needs KTO-11, verified facts separated from spike assumptions,
QUE-06 keyboard criterion, T2 depends on PR A, limited interception
protection on Android < 12 (R13, F11), login CSRF accepted (R14),
supersession of spec 1 E4 recorded as task W2.

Refs #49

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
docs(auth): mark E4 and mail-link rows superseded by spec 49
All checks were successful
CI / flutter (pull_request) Successful in 1m24s
CI / web-build (pull_request) Successful in 1m2s
CI / supabase (pull_request) Successful in 8s
CI / supabase-tests (pull_request) Successful in 33s
CI / e2e (pull_request) Successful in 3m3s
e3532210ea
Refs #49

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
cschlaefke added the
status/ready-for-merge
label 2026-11-03 20:34:07 +00:00
Author
Owner

Antwort zu C1/W1 (Chris, 2026-11-04): In Xcode steht beim Team KSX6GJY9C5 „Developer Team“ (kein „Personal Team“). Damit gilt das Team als bezahlt; die Team-ID kann in APPLINK-03 und die AASA-Vorlage eingetragen werden. Offen bleibt, welche Rolle Chris im Team hat (Account Holder/Admin vs. „Developer“): Für die Capability „Associated Domains“ und das Anlegen/Ändern der App-ID braucht es mindestens eine Rolle mit Zugriff auf Zertifikate, Kennungen und Profile. Das ist bei C1 zu bestätigen. Der Architekt zieht die Spec nach der Freigabe entsprechend nach (E6/C1: iOS-Verdrahtung kann in PR B mitgenommen werden, wenn die Rolle reicht).

**Antwort zu C1/W1 (Chris, 2026-11-04):** In Xcode steht beim Team `KSX6GJY9C5` „Developer Team“ (kein „Personal Team“). Damit gilt das Team als bezahlt; die Team-ID kann in APPLINK-03 und die AASA-Vorlage eingetragen werden. Offen bleibt, welche Rolle Chris im Team hat (Account Holder/Admin vs. „Developer“): Für die Capability „Associated Domains“ und das Anlegen/Ändern der App-ID braucht es mindestens eine Rolle mit Zugriff auf Zertifikate, Kennungen und Profile. Das ist bei C1 zu bestätigen. Der Architekt zieht die Spec nach der Freigabe entsprechend nach (E6/C1: iOS-Verdrahtung kann in PR B mitgenommen werden, wenn die Rolle reicht).
Author
Owner

Freigabe (Chris, 2026-11-04): Spec #49 ist angenommen, alle Entscheidungen F1–F11 wie empfohlen (u. a. nur /auth/confirm, kein eigenes URL-Schema, webcredentials auf iOS, Hinweis-Karte auch im Web, minSdk unverändert). C1: Team KSX6GJY9C5 ist ein „Developer Team“ (Kommentar oben); die Rolle für „Associated Domains“ bestätigt Chris bei C1. Umsetzung startet mit PR A (Einstieg).

**Freigabe (Chris, 2026-11-04):** Spec #49 ist angenommen, alle Entscheidungen F1–F11 wie empfohlen (u. a. nur `/auth/confirm`, kein eigenes URL-Schema, `webcredentials` auf iOS, Hinweis-Karte auch im Web, `minSdk` unverändert). C1: Team `KSX6GJY9C5` ist ein „Developer Team“ (Kommentar oben); die Rolle für „Associated Domains“ bestätigt Chris bei C1. Umsetzung startet mit PR A (Einstieg).
cschlaefke merged commit 220dfd195d into main 2026-11-04 00:29:41 +00:00
cschlaefke deleted branch docs/49-mobil-login-spec 2026-11-04 00:29:41 +00:00
Sign in to join this conversation.
No description provided.