docs(PROJ-16): add technical design for federation status

Verified the actual admin API against matrix.perlbach24.de before
finalizing the design (lesson from PROJ-14/15, where per-version
response-shape surprises cost a real bug and a wasted defensive code
path): GET /_synapse/admin/v1/federation/destinations returns a clean
{destinations: [], total: 0} instantly with federation disabled — no
surprises, no open questions left for the backend pass. Status set to
In Progress.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0143yYvjesjHndBACoweyK67
This commit is contained in:
patrickandClaude Sonnet 5 committed 2026-09-14 23:52:15 +02:00
1 parent 509194d3e6
commit 9498262836
2 files changed
+33 -2

No files matched your search

+1 -1
View File
@@ -27,7 +27,7 @@
| PROJ-13 | SYSTEM_ADMIN-Rolle | Deployed | [PROJ-13-system-admin-rolle.md](PROJ-13-system-admin-rolle.md) | 2026-09-12 |
| PROJ-14 | Synapse Raum-Übersicht (System-Admin) | Deployed | [PROJ-14-synapse-raum-uebersicht.md](PROJ-14-synapse-raum-uebersicht.md) | 2026-09-12 |
| PROJ-15 | Media-Cleanup (System-Admin) | Deployed | [PROJ-15-media-cleanup.md](PROJ-15-media-cleanup.md) | 2026-09-12 |
| PROJ-16 | Federation-Status (System-Admin) | Planned | [PROJ-16-federation-status.md](PROJ-16-federation-status.md) | 2026-09-12 |
| PROJ-16 | Federation-Status (System-Admin) | In Progress | [PROJ-16-federation-status.md](PROJ-16-federation-status.md) | 2026-09-12 |
| PROJ-17 | Nachricht melden (Chat) | Planned | [PROJ-17-nachricht-melden.md](PROJ-17-nachricht-melden.md) | 2026-09-12 |
| PROJ-18 | Reports/Moderation (System-Admin) | Planned | [PROJ-18-reports-moderation.md](PROJ-18-reports-moderation.md) | 2026-09-12 |
+32 -1
View File
@@ -1,6 +1,6 @@
# PROJ-16: Federation-Status (System-Admin)
**Status:** Planned
**Status:** In Progress
**Created:** 2026-09-12
## Summary
@@ -27,3 +27,34 @@ Anzeige, welche externen Matrix-Server aktuell föderiert sind — nachgebaut au
## Non-Goals
- Federation aktivieren/konfigurieren über dieses Panel — bleibt Server-Konfigurationsaufgabe (`homeserver.yaml`), keine UI dafür
- Server explizit blockieren/whitelisten über UI
## Tech Design (Solution Architect)
### A) Komponenten-Struktur
```
System-Admin-Bereich
└── Seite "Federation" (NEU, "/system-admin/federation")
└── Tabelle: Server-Name | Letzter Kontakt | Status
(oder, wenn leer: erklärender Hinweistext statt leerer Tabelle)
```
Dritte Unterseite im System-Admin-Bereich, gleiches Muster wie Räume (PROJ-14) und Medien (PROJ-15).
### B) Datenfluss (in einfachen Worten)
Backend fragt Synapse "mit welchen anderen Matrix-Servern hattest du zuletzt Kontakt" und reicht die Antwort unverändert durch — keine eigene Datenspeicherung, reine Weiterleitung, wie bei der Raum-Übersicht.
**Vorab an der echten Instanz geprüft** (Lehre aus PROJ-14/15, wo genau das Verhalten je Version überraschend war): Die Abfrage antwortet sofort mit einer sauberen Liste plus Gesamtzahl. Bei deaktivierter Federation ist die Liste leer — genau der erwartete Normalzustand, kein Fehler und keine Überraschung im Antwortformat.
### C) Tech-Entscheidungen (Begründung)
- **Leerer Zustand wird als Bestätigung dargestellt, nicht als Mangel:** "Keine Daten" klingt nach einem Problem; bei diesem Feature ist eine leere Liste das gewünschte Ergebnis (Federation ist bewusst aus). Die Seite sagt das explizit, damit niemand denkt, die Funktion sei kaputt.
- **Reine Anzeige, kein Schreibzugriff:** Konsistent mit der Anforderung — dieses Feature dient der Kontrolle/Verifikation ("ist wirklich nichts verbunden?"), nicht der Verwaltung.
### D) Abhängigkeiten (neue Pakete)
Keine.
### Status
Vorabprüfung gegen die echte Synapse-Instanz abgeschlossen — keine offenen technischen Fragen mehr vor der Umsetzung.