PostgreSQL ab Tag 1
✓ liveSQLite verboten als Projektstandard. Provider strikt postgresql, eigener Container, eigenes Passwort.
10 Pflicht-Auflagen · alle eingearbeitet
Bevor Code geschrieben wurde, haben zwei getrennte Analysen (ChatGPT und Claude Chat) den Architektur-Entwurf geprüft. Beide haben dieselben kritischen Stellen gefunden. Diese zehn Auflagen waren Pflicht. Hier ist das Mapping.
SQLite verboten als Projektstandard. Provider strikt postgresql, eigener Container, eigenes Passwort.
@node-rs/argon2 mit 64 MiB Memory, 3 Iterations für User-Passwörter. bcrypt nur für 4-stellige Notfall-PIN — mit dokumentierter Begründung. PinAttempt-Tabelle protokolliert jeden Versuch. Max. 5 Fehlversuche pro QR-Token in 10 Minuten, dann Sperre.
Tabelle bleibt als Phase-2-Vorbereitung. Endpoint antwortet HTTP 503 mit klarer Begründung. Kein POST, kein GET nimmt Daten entgegen.
MirrorSession-Modell vollständig entfernt. Mirror4U-Aufrufe erzeugen kein DB-Insert mit seniorId, contextState oder Belastungsmuster. Sichtbarer Disclaimer auf jeder Atem-Seite.
Fünf getrennte Modelle: SeniorProfile (Basis), MedicalProfile (Diagnosen/Allergien/Pflegegrad), EmergencyProfile (QR/PIN/Notfallkontakte), PrivateNote (nur Senior), FamilySharedInfo (Familie). Normale Profilansicht lädt KEINE Diagnosen mit.
Postgres-Enum DataClass mit 13 Werten. AccessGrant pro Person + Datenklasse + Permission. ConsentRecord widerrufbar. AuditEvent loggt jeden Zugriff. Margaretes Seed hat 21 explizite AccessGrants.
Senior-Start zeigt zuerst P0 (Heute, Tabletten, Hilfe, Notfallkarte, Atem, Einrichtung, Freigaben), danach P1 mit P1-Pill (Tagesfragen, Essen, Trinken, Nachricht). Fokus klar.
Senior-Mode auf / · Help4U-Schale unter /familie · Hinweis-Banner: "nachrangig zu Remember4U, wird erst nach Senior-Kern produktiv ausgebaut".
MIRROR4U_BASE_URL aus .env. Leer = kein externer Link. Lokal aktuell leer, nur Inhouse-Voice-Player über Web Speech API.
Footer, Compliance-Hinweise, Mirror-Seiten, Krisenprotokolle nutzen 116 123 als Haupteintrag. Notfall-Atem-Voice spricht "eins eins sechs · eins zwei drei". HelpGuide-Eintrag markiert als Hauptnummer.
| Datenklasse | Anna Tochter | Lotte Nachbarin | Pflege dienst | Dr. Weber Hausarzt | Peter Freund |
|---|---|---|---|---|---|
| profile_basic | manage | view | view | — | — |
| calendar | manage | view | — | — | — |
| medication | manage | — | view | view | — |
| allergy | manage | — | view | view | — |
| diagnosis | manage | — | — | view | — |
| emergency | manage | view | view | — | — |
| care | manage | — | view | view | — |
| document | manage | — | — | — | — |
| bridge_message | manage | — | — | — | — |
| private_note | — | — | — | — | — |
| counseling | — | — | — | — | — |
Margarete selbst entscheidet pro Person + Datenklasse, was sichtbar ist. Peter ist nur Telefon-Freund — sieht nichts. Private Notizen und seelsorgerische Inhalte bleiben grundsätzlich nur bei ihr.