Ueberblick ueber die Architekturentscheidungen des RevierManager-Backends. Die verbindlichen Volltexte der ADRs liegen versioniert im Repo unter docs/adr/ (direkt beim Code). Diese Seite gibt die Uebersicht und Einordnung; bei Aenderungen bleibt das Repo massgeblich.
Stand: 2026-07-04, Git-HEAD 93381e1. Quelle: docs/STATUS.md im Repo.
revier_id als hartes Netz PLUS Query-Layer-Filter im Service. Die App verbindet als NICHT-privilegierte DB-Rolle, damit RLS auch fuer sie greift. Mandanten-Scope wird pro Request transaktions-lokal gesetzt.version hoch und schreiben change_log (globale seq). Pull inkrementell und revierbezogen, Feed mit Nutzdaten + Tombstone-Flag. Schreibkonflikte via optimistische Sperre (If-Match), abgewiesene Schreibvorgaenge in sync_conflict.version, deleted_at (Tombstone), Audit-Felder.ADRs 0001-0009 dokumentieren die fruehen Grundsatzentscheidungen (Backend-Sprache, Mandantenmodell, Sync, Laendermodell, Bezahlmodell u. a.). ADRs 0010-0019 sind mit dem Backend-Aufbau entstanden:
| ADR | Thema | Kern |
|---|---|---|
| 0010 | Sprint-0-Fundament | FastAPI/PostGIS/RLS/Alembic, nicht-privilegierte DB-Rolle |
| 0011 | Auth: Keycloak (OIDC) | zustandslose JWT/JWKS-Validierung; Rollen in der App |
| 0012 | Sync-Fundament | version/change_log per DB-Trigger; inkrementeller Pull |
| 0013 | Sync-Konflikte | optimistische Sperre via If-Match; sync_conflict |
| 0014 | Medien/MinIO | presigned Direct-Upload; object_key; EXIF als harte Voraussetzung |
| 0015 | Sync-Feed | Anreicherung um Nutzdaten + Tombstone-Flag |
| 0016 | EXIF-Stripping | Metadaten-Entfernung beim Confirm; nicht-sanitisierbare Bilder abgelehnt |
| 0017 | Foto-Share | Token-Links ueber die API; Ablauf/Widerruf; nur sanitisierte Fotos |
| 0018 | Loeschkonzept | Kontoloeschung = Anonymisierung + Owner-Sperre; Retention teils aufgeschoben |
| 0019 | Share-Zugriffslog | Zugriffe protokolliert; IP/UA als PII |
owner unantastbar (per API nicht vergebbar/aenderbar); Ersteller = Owner.jagdjahr server-seitig berechnet (01.04.-31.03.) und gespeichert.| Datum | Aenderung |
|---|---|
| 2026-07-04 | Erstfassung aus STATUS.md; ADRs 0010-0019, Keycloak-Entscheidung bestaetigt. |